如何获取分组数据的统计信息

时间:2012-11-14 19:26:58

标签: mysql

我有一个客户访问企业的表格,其中包含日期列和客户信息列。

+------+---------------------+------+
| id   | checkin             | name | ...
+------+---------------------+------+
|    1 | 2010-01-01 00:12:00 | Joe  | 
|    2 | 2010-01-01 00:18:00 | John |
|    3 | 2010-01-01 00:22:00 | Jane |
...

我希望按星期几获得统计数据,即按星期几列出的平均,最小,最大访问次数。类似的东西:

+---------+---------+---------+
| day     | average | minimum | ...
+---------+---------+---------+
| Monday  | 45      | 30      | 
| Tuesday | 60      | 35      |
...

我相信我需要使用子查询或联接来执行此操作,但无法弄清楚如何。

此查询将累计每天的访问次数

SELECT dayname(checkin) as day, count(*) as total
FROM customer_log
group by date(checkin)

然后在上面的结果我需要运行像

这样的东西
SELECT sum(total), max(total), min(total)
from {above table}
group by day.

谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT dayname(checkinDate) day,
  sum(visitsPerDay) totalVisits,
  avg(visitsPerDay) avgVisits,
  max(visitsPerDay) maxVisits,
  min(visitsPerDay) minVisits
FROM (
  SELECT date(checkin) checkinDate, count(*) visitsPerDay FROM Customer_log
  GROUP BY checkinDate
) AS visitsPerDaySub
GROUP BY dayofweek(checkinDate)

相关问题