希望あなたは私を助けることができます!年齢グループ間のSQL
country | Date_of_birth
-----------------------
france | 1980-07-01
spain | 1978-03-23
greece | 1981-05-05
germany | 1974-08-11
私はこの結果を取得しようとしている:
私は次のデータベースを持っている
country | 13 - 17 | 25 - 45 | 65 - 75
-------------------------------------
france | | 1 |
spain | | 1 |
greece | | 1 |
クエリが、私はここまで考え出し:
SELECT SUM(IF(age BETWEEN 13 AND 17 , 1, 0)) AS '13 - 17',
SUM(IF(age BETWEEN 25 AND 45 , 1, 0)) AS '25 - 45',
SUM(IF(age BETWEEN 65 AND 75 , 1, 0)) AS '65 - 75'
FROM (SELECT TIMESTAMPDIFF(YEAR, Date_of_birth, CURDATE()) AS age, country FROM data
) AS test
GROUP BY country
HAVING country IN ("france","greece,"spain")
結果:
13 - 17 | 25 - 45 | 65 - 75
----------------------------
| 1 |
| 1 |
| 1 |
どのように私は最初に "国"の列を取得するか考えていますか?
ありがとうございます!
+1私はきちんと 'sum'好き - 恐ろしい –