在MySQL中的列中选择不同标志的计数

时间:2016-12-05 03:31:08

标签: mysql

我有一张桌子:

id  flag
1    Y
1    Y
1    Y
1    N
1    N
2    Y
2    N
2    N
3    Y
3    N

我想做select语句,它会给我以下输出。

id   count_flag_Y   count_flag_N
 1        3               2
 2        1               2
 3        1               1

我尝试使用select case方法,但语法错误。

SELECT id,SUM(CASE WHEN flag= 'Y') as count_flag_Y,
SUM(CASE WHEN flag= 'N') as count_flag_N
from tablename
GROUP BY id

有什么办法吗?

2 个答案:

答案 0 :(得分:5)

您的查询并不遥远,您只有CASE表达式的轻微问题。试试这个:

SELECT id,
       SUM(CASE WHEN flag= 'Y' THEN 1 ELSE 0 END) AS count_flag_Y,
       SUM(CASE WHEN flag= 'N' THEN 1 ELSE 0 END) AS count_flag_N
FROM tablename
GROUP BY id

答案 1 :(得分:2)

你非常接近,但在MySQL中不需要test=pd.to_datetime(myframe['date'], format='%d-%m-%Y %H:%M:%S')

CASE

MySQL在数字上下文中使用" 1"处理布尔表达式,如整数。为真和" 0"为假。