我有一个表,其中有我感兴趣的两列:created_at和total_time。我想执行一个查询,该查询按创建记录的星期几分组,计算总计数以及total_time> 5的计数。
例如,如果星期五有6条记录,其中4条记录的时间> 5,查询应该返回星期五的以下内容:
星期五| 6 | 4
我有一天和计数> 5像这样工作:
SELECT
DAYNAME(created_at) as weekday,
COUNT(*) AS count
FROM my_table
WHERE
total_time > 5
GROUP BY weekday
ORDER BY count DESC
但是是否有一种方法可以使总数也包括在内(不管total_time)?
欢迎指教。
谢谢
您可以同时获得两个计数,但使用以下命令:
SELECT DAYNAME(created_at) as weekday,
COUNT(*) AS count,
sum(case when total_time > 5 then 1 else 0 end) TimeOver5
FROM my_table
GROUP BY weekday
ORDER BY count DESC
参见SQL Fiddle with Demo。
使用带有CASE
表达式的聚合函数来获取total_time >5