我有一张桌子:
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
有什么办法吗?
答案 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"为假。