[MySQL] 数値を範囲で区切って集計
スポンサーリンク
MySQLで数値の範囲で区切って集計する方法のメモ。
具体的にどういうことかというと、例えば以下のようなデータから、100円台、200円台のような大台で区切って集計する方法についての解説です。100円台は1個、200円台は2個という風に10以下の桁を切捨てて100円台で集計したいわけですね。
id | item | price ---|-----------|------- 1 | Apple | 120 2 | Pineapple | 299 3 | Orange | 66 4 | Melon | 450 5 | Orange | 77 6 | Peach | 250
こういう場合、MySQLではTRUNCATE
関数を使います。テーブルをカラにするTRUNCATE構文と紛らわしいですが、MySQLでは任意の桁数で切り捨てる関数がTRUNCATE
という名前になっています。
上記のテーブルから100円単位で集計するならSQL文は以下の通り。
SELECT TRUNCATE(price,-2) AS price, COUNT(id) AS cnt FROM table_name GROUP BY price ORDER BY price
スポンサーリンク
MySQLカテゴリーの投稿
- [MySQL] UNIONとJOINを組み合わせて使う
- [MySQL] UPDATEで時間を加算・減算する
- [MySQL] datetime型カラムを時間単位で集計する
- [MySQL] カラム内の指定した文字列を置換する
- PHP、MySQL、CRONが使える無料レンタルサーバー「000.webhost.com」
- [MySQL] 日時のデータをもとに日別のデータを集計する
- [MySQL] カラム内の文字列の一部を一括置換する
- [MySQL][php] updateしたIDを知りたい場合はLAST_INSERT_ID()を使う
- MySQLバージョン4.x以前からエクスポートしたsqlファイルはTYPE = MyISAM を ENGINE = MyISAM に変更する
- さくらインターネットのMySQLを4.0.6から5.1にアップグレード