如何找到出生日期在1980年到1996年之间的用户百分比。

时间:2012-07-03 10:27:38

标签: mysql mysql-error-1064

我试图找出出生日期在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

我该怎么做?

提前谢谢

3 个答案:

答案 0 :(得分: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`

答案 1 :(得分:1)

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

答案 2 :(得分: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