如何将两行sql查询相加

时间:2017-03-02 09:04:28

标签: php html sql

在数据库中,我为学生注册了一个活动。它看起来像这样:

id, firstname, surname, gender, email, studydegree, study, workshop1, workshop2, participate_speeddating, ss_companies, date of birth, date of registration

例如

6574, John, Doe, Male, johndoe@gmail.com, Phd, ComputerScience, None, None, no, None, 01-01-1990, 01-01-2017

我有以下查询:

    <?php query_to_html('Studies', 'SELECT study, COUNT(*) FROM registrants GROUP BY study'); ?> 

其中query_to_html将查询转换为html表。 这给了我以下内容:

study , COUNT(*)
Mathematics, 90
Physics, 71
Astronomy, 5
Biology, 25
Biomedical Sciences, 25
... etc

我想根据研究协会(数组)总结一些研究,例如第1组数学,天文学,物理学和计算机科学以及第2组生物学和生物医学科学。像这样:

study_association, amount
Fundamentals, 166
Bio, 50

其中166和55是与study_association数组对应的几行的总和。

我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用SUM(IF())仅计算特定行。我假设你的专栏是“小组”:

SELECT
    study,
    COUNT(*) AS sum,
    SUM(IF(`group` IN ('Mathematics', 'Astronomy', 'Physics', 'Computer Science'), 1, 0) AS group1,
    SUM(IF(`group` IN ('Biology', 'Biomedical'), 1, 0) AS group2
FROM registrants
GROUP BY study

这会计算在给定数组中属于其中一个组的注册人。