2017-03-02 5 views
0

データベースでは、イベントの登録者数が登録されています。それは次のようになります。SQLクエリの2行を合計する方法

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

6574, John, Doe, Male, [email protected], Phd, ComputerScience, None, None, no, None, 01-01-1990, 01-01-2017 

のために、私は以下のクエリがあります:query_to_htmlはHTMLテーブルにクエリを変換

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

。 これは私に次のようになります:

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

Iは、例えば、グループ1)、数学、天文学、物理学とコンピュータサイエンスとグループ2のために、研究協会(配列)に基づいて、研究の一部を合計したいと思います)生物学と生物医学。このように:

study_association, amount 
Fundamentals, 166 
Bio, 50 

ここで、166と55は、study_association配列に対応する数行の合計です。

どうすればよいですか?

ありがとうございます!

+2

サンプルテーブルのデータと期待される結果をすべて追加します。 – jarlh

答えて

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 

:私はあなたの列が「グループ」であると仮定します。

関連する問題