裏MySQL クエリー入門 (24) 基礎編13 GROUP BY
今更GROUP BY?というのはごもっともな話です。普通のGROUP BYはマニュアルを見ていただくとして、ここでは裏MySQL クエリー入門的なGROUP BYのサンプル例をいくつか紹介していきましょう。
- 日毎に集計するには
SELECT DATE(access_time), count(access_id) "アクセス数" FROM access GROUP BY DATE(access_time)
- 月毎に集計するには
SELECT DATE_FORMAT(access_time,'%Y/%m'), sum(carrier_id=1) "DoCoMo", sum(carrier_id=2) "au", sum(carrier_id=3) "SoftBank" count(access_id) "全体" FROM access GROUP BY DATE_FORMAT(access_time,'%Y/%m')
- 5分毎、10分毎、15分毎と集計するFX的な用途でGROUP BYするには?
サンプルは30分毎です。
SELECT FROM_UNIXTIME( TRUNCATE(UNIX_TIMESTAMP(user_created_time)/1800,0) *1800), max(buy) ,min(buy) ,avg(buy), max(sell),min(sell),avg(sell) FROM trade GROUP BY TRUNCATE(UNIX_TIMESTAMP(trade_time)/1800,0)
- 設計が間違っちゃっているテーブル構造を修正する為のGROUP BY アレコレ
追記
- 8/4 日毎の集計が月毎の集計となっていたので修正、またクエリーにも誤りがあったので修正。ついでに日毎の集計を追加