0

さて、私がこの生年月日のリストを持っているとしましょう

ここに画像の説明を入力

そして、対応する年齢のデータを数えたいのですが、

ages 10 - 15
ages 16 - 20
ages 21 - 30
and so on...

さて、私はこのサイトからこのコードを見つけました

SELECT * 
FROM your_table 
WHERE YEAR(CURDATE())-YEAR(BirthDate) BETWEEN 10 AND 20;

これは実際に役立ちますが、複数の where 句を使用してどのように適用しますか?

コード表現の推測

"SELECT COUNT(birthday) a IN (SELECT birthday FROM WHERE YEAR(CURDATE())-YEAR(BirthDate) BETWEEN 10 AND 15), COUNT(birthday) b IN (SELECT birthday FROM WHERE YEAR(CURDATE())-YEAR(BirthDate) BETWEEN 16 AND 20) FROM table"

それをエコーすると、次のようになります

Total result of age 10 - 15 : **25**

Total result of age 16 - 20 : **12**

そのようなものはありますか?どんな助けでも大歓迎です。

4

1 に答える 1

2

これは MySQL で機能します。

SELECT AGE_RANGE, COUNT(*) FROM (
    SELECT CASE
        WHEN YearsOld BETWEEN 0 AND 5 THEN '0-5'
        WHEN YearsOld BETWEEN 6 AND 10 THEN '6-10'
        WHEN YearsOld BETWEEN 11 AND 15 THEN '11-15'
        WHEN YearsOld BETWEEN 16 AND 20 THEN '16-20'
        WHEN YearsOld BETWEEN 21 AND 30 THEN '21-30'
        WHEN YearsOld BETWEEN 31 AND 40 THEN '31-40'
        WHEN YearsOld > 40 THEN '40+'
        END AS 'AGE_RANGE'
        FROM (
            SELECT YEAR(CURDATE())-YEAR(DATE(birthdate)) 'YearsOld' 
            FROM MyTable
        ) B
) A
GROUP BY AGE_RANGE
于 2013-06-27T04:15:32.440 に答える