我有一个表,我感兴趣的是两列,created_at和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)?
任何建议表示赞赏。
由于
答案 0 :(得分:3)
您可以同时使用以下两种方法:
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
这使用带有CASE
表达式的聚合函数来获取total_time >5