1

日付の列と顧客情報の列を含む、ビジネスへの顧客訪問のテーブルがあります。

+------+---------------------+------+
| 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.

ありがとう!

4

1 に答える 1

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)

于 2012-11-14T19:54:21.300 に答える