我有一张桌子
id|user_id|start|stop 1| 1| 1| 1 2| 2| 1| 1 3| 2| 1| 0 4| 3| 0| 0
我想获得下一个结果
user_id|total|start|stop 1| 1| 1| 1 2| 2| 2| 1 3| 1| 0| 0
所以我想进行3次计数并按user_id进行分组。是否可以使用Joins和没有派生表来准备查询?
答案 0 :(得分:3)
SELECT user_id,
Sum (start) AS start,
Sum (stop) AS stop,
Count(*) AS total
FROM tablename
GROUP BY user_id
答案 1 :(得分:3)
SELECT user_id, COUNT(*) total, SUM(start=1) start, SUM(stop=1) stop
FROM my_table
GROUP BY user_id
答案 2 :(得分:2)
计算start
中的1和stop
中的1 的行的总行数。
SELECT user_id,
count(case start WHEN 1 then 1 else null end) AS start,
count(case stop WHEN 1 then 1 else null end) AS stop,
count (*) AS total
FROM tablename
GROUP BY user_id