我有一张桌子:
id flag
1 Y
1 Y
1 Y
1 N
1 N
2 Y
2 N
2 N
3 Y
3 N
Run Code Online (Sandbox Code Playgroud)
我想做为select语句,这将给我以下输出。
id count_flag_Y count_flag_N
1 3 2
2 1 2
3 1 1
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用该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
Run Code Online (Sandbox Code Playgroud)
有什么办法吗?
您的查询距离不远,您的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
Run Code Online (Sandbox Code Playgroud)