3

生年月日が 1980 年から 1996 年の間にあるユーザーの割合を見つけようとしています。

私はそれを行う方法を見つけることができません:

SELECT Sum
(WHEN userBirthDate BETWEEN '1980/01/01' AND '1996/12/31'
THEN 1 ELSE 0 END) * 100 / Count(userID) as total
FROM user

mysql が返すエラーの構文は次のとおりです。

 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHEN userBirthDate BETWEEN '1980/01/01' AND '1996/12/31' THEN 1 ELSE 0)' at line 1

どうすればできますか?

前もって感謝します

4

3 に答える 3

2
SELECT Sum(case WHEN userBirthDate BETWEEN '1980/01/01' AND '1996/12/31'
                THEN 1 
                ELSE 0 
       END) * 100 / Count(userID) as total
FROM `user`

あるいは単に

SELECT Sum(userBirthDate BETWEEN '1980/01/01' AND '1996/12/31') * 100 / Count(userID) as total
FROM `user`
于 2012-07-03T10:29:21.287 に答える
1
SELECT Sum
(IF( userBirthDate BETWEEN '1980/01/01' AND '1996/12/31', 1 , 0 )) * 100 / Count(userID) as total
FROM user
于 2012-07-03T10:30:27.750 に答える
1
SELECT Sum
(CASE WHEN userBirthDate BETWEEN '1980/01/01' AND '1996/12/31'
THEN 1 ELSE 0 END) * 100 / Count(userID) as total
FROM user
于 2012-07-03T10:32:30.830 に答える