0

我有一个表,其中包含我感兴趣的两列,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

但是有没有办法让总计数也包括在内(不管总时间)?

任何建议表示赞赏。

谢谢

4

1 回答 1

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

请参阅SQL Fiddle with Demo

这使用带有CASE表达式的聚合函数来获取total_time >5

于 2013-03-27T15:20:20.080 回答