• ベストアンサー

SQL文を教えてください。

SQL文を教えてください。 グループ毎にレコード数をカウントして、レコード数が大きい順に並び替えたいです。 番号 枝番 金額 111 1 100 111 2 100 222 1 100 222 2 100 222 3 100 333 1 100 444 1 100 444 2 100 【答え】 番号 件数 222 3 111 2 444 2 333 1 のようにorder by で並べ替えたいです。 SQL一発でできませんか? SQLに詳しい方、ご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

普通に、 select 番号,count(*) as 枝番 from テーブル group by 番号 order by 枝番 desc; で問合せ可能だと思いますよ。(少なくとも、10r2では正しく表示されます)

nakayama10
質問者

お礼

遅くなりましたが、ご回答ありがとうございました。大変参考になりました。

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

YOUサブクエリ使っちゃいなYO。 select * from (select 番号, Count(*) as 件数 from テーブル) 元テーブル order by 件数 desc これだとサブクエリが使えないDBMSではうまくいかないのだが、現時点でサブクエリが使えないDBMSはオンメモリDBでない限りほとんどなく、Count(*)を直でorder byできるDBMSの数の方が少ないため、汎用性を考えると上記のSQLが一番バランスが良いと思う。ってOracleって書いてるね。Oracleは(Count (*)をorder byする事が)できるんだけど、やはり素直なSQLを書く方が良いと思いますです。 Oracleは select 番号, Count(*) as 件数 from テーブル order by 件数 desc のようにasでつけた別名をorder byできると思うんだけど、どうだろう。他のDBMSは最近触ってないのでよく覚えてない。

nakayama10
質問者

お礼

遅くなりましたが、ご回答ありがとうございました。大変参考になりました。

関連するQ&A