データセットをグループ化してカウントするクエリがいくつかあります。
SELECT COUNT(*)
FROM `table`
GROUP BY `column`
今、私は同じ行数を持っていcolumn
ます。これまでのところとても良いです。
問題は、これらの「グループ化された」カウントの集計 (最小/最大/平均/合計) 値を取得する方法です。サブクエリを使用するのが最も簡単ですが、この単一のクエリ内でこれが可能かどうか疑問に思っていました
For min
and max
you can ORDER BY
and fetch the first row. sum
/ /other 集計の場合avg
は、サブクエリが必要です。
MySQLでは、これを一度に実行できるはずです。私のテストは、これが機能することを示しているようです。
| date | hits |
|-------------------|
| 2009-10-10 | 3 |
| 2009-10-10 | 6 |
| 2009-10-10 | 1 |
| 2009-10-10 | 3 |
| 2009-10-11 | 12 |
| 2009-10-11 | 4 |
| 2009-10-11 | 8 |
-------------------
SELECT COUNT(*), MAX(hits), SUM(hits) FROM table GROUP BY date
| COUNT(*) | MAX(hits) |
|-----------|-----------|
| 4 | 6 |
| 3 | 12 |
-----------------------
SUM、MIN、AVGも機能します。これはあなたが探しているものですか?
| date | hits |
|-------------------|
| 2009-10-10 | 3 |
| 2009-10-10 | 6 |
| 2009-10-10 | 1 |
| 2009-10-10 | 3 |
| 2009-10-11 | 12 |
| 2009-10-11 | 4 |
| 2009-10-11 | 8 |
Knittl は次のようなことをしようとしていたと思います。
select min(hits), max(hits), avg(hits), sum(hits)<br>
from table
group by date