現在、特定の日の特定のテーブルの上位 X 件の結果のリストがあります。「上位」は、集計数が最も多い結果として定義されています。私が見たいのは、その特定の日のカウントだけでなく、昨日のカウントとの比較、および先週のカウントの平均です。
これが私の現在のクエリです:
SELECT foo, bar, SUM(count) as today
FROM tablename
WHERE col1 = 'asdf' and date = '2012-08-23'
GROUP BY foo, bar
ORDER BY count desc
LIMIT 5
結果は次のようになります。
|foo | bar | today |
|something1 | something3 | 2345 |
|something2 | something4 | 1234 |
....
しかし、私が持ちたいのは次のようなものです:
|foo | bar | today | yesterday | week_avg |
|something1 | something3 | 2345 | 2273 | 2193 |
|something2 | something4 | 1234 | 935 | 1001 |
....
ボーナス ポイントとして、何らかの GROUP_CONCAT の結果で過去 20 日間のすべての日付を取得してもかまいません (そのため、スパークラインを簡単に作成できます)。