抽出データのソート方法について
開発環境は以下になります。
・PHP Version 5.2.11
・MySQL (5.0)
そして、以下のデータがDBに格納されていると仮定します。
TABLE `hogehoge`
CHIIKI,GENRE,CNO
特殊地帯,コンビニ,TOSI001
特殊地帯,八百屋,TOSI001
駒込,デパート,TOSI002
池袋西口,ドンキホーテ,TOSI002
駒込,店舗型エステ日本人,TOSI002
巣鴨,魚屋,TOSI002
池袋東口,スーパー,TOSI002
池袋東口,赤札堂,TOSI002
池袋東口,フリーマーケット,TOSI002
巣鴨,ドンキホーテ,TOSI002
その他,質屋,TOSI003
その他,コンビニ,TOSI003
池袋西口,スーパー,TOSI002
池袋西口,赤札堂,TOSI002
特殊地帯,質屋,TOSI001
池袋西口,デパート,TOSI002
池袋東口,ドンキホーテ,TOSI002
目白,コンビニ,TOSI002
このようなテーブルがあるとします。
そこで、
SELECT `CHIIKI` , `GENRE` , `CNO` , COUNT( `CHIIKI` ) AS CNT
FROM `hogehoge`
GROUP BY `CHIIKI` , `GENRE` , `CNO`
ORDER BY `CNO` ASC , `CHIIKI` ASC , `CNT` DESC
としますと、以下のような状態に並び変わります。
CHIIKI,GENRE,CNO,CNT
特殊地帯,コンビニ,TOSI001,18
特殊地帯,質屋,TOSI001,16
特殊地帯,八百屋,TOSI001,15
目白,コンビニ,TOSI002,1
駒込,デパート,TOSI002,1
駒込,店舗型エステ日本人,TOSI002,1
巣鴨,魚屋,TOSI002,3
巣鴨,ドンキホーテ,TOSI002,1
池袋西口,スーパー,TOSI002,37
池袋西口,赤札堂,TOSI002,23
池袋西口,ドンキホーテ,TOSI002,18
池袋西口,デパート,TOSI002,13
池袋東口,ドンキホーテ,TOSI002,17
池袋東口,スーパー,TOSI002,15
池袋東口,赤札堂,TOSI002,11
池袋東口,フリーマーケット,TOSI002,3
その他,質屋,TOSI003,4
その他,コンビニ,TOSI003,2
これは、まず「特殊地帯」は必ず一番上、「その他」は一番下、それ以外は各「CHIIKI」の合計が多い順に並べたいというのが希望です。
しかし、CHIIKIの合計で並び替えの方法がわからず困っております。
本来は以下のような状態に並び替えたいのです。
CHIIKI,GENRE,CNO,CNT
特殊地帯,コンビニ,TOSI001,18
特殊地帯,質屋,TOSI001,16
特殊地帯,八百屋,TOSI001,15
池袋西口,スーパー,TOSI002,37
池袋西口,赤札堂,TOSI002,23
池袋西口,ドンキホーテ,TOSI002,18
池袋西口,デパート,TOSI002,13
池袋東口,ドンキホーテ,TOSI002,17
池袋東口,スーパー,TOSI002,15
池袋東口,赤札堂,TOSI002,11
池袋東口,フリーマーケット,TOSI002,3
巣鴨,魚屋,TOSI002,3
巣鴨,ドンキホーテ,TOSI002,1
駒込,デパート,TOSI002,1
駒込,店舗型エステ日本人,TOSI002,1
目白,コンビニ,TOSI002,1
その他,質屋,TOSI003,4
その他,コンビニ,TOSI003,2
どうすれば、SELECT文で並び替えが出来るのか、何卒ご教授ください。
宜しくお願い致します。
お礼
ラウンドワンという発想はなかったです‼︎ 20時ぐらいまでいたかったので 今回は歌広場を使用しました。 ありがとうございました!