在数据库中,我为学生注册了一个活动。它看起来像这样:
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数组对应的几行的总和。
我该怎么做?
谢谢!
答案 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
这会计算在给定数组中属于其中一个组的注册人。