SQL GROUPで件数の一番多いレコードのみ取る
SQL GROUPで件数の一番多いレコードのみ取る
ORACLE10です。
次のようなテーブルがあります。
USER -----------テーブル名
ID,NAME,DATA----列名
1,A,any
1,A,any
1,B,any
2,C,any
3,D,any
このテーブルから、IDをGROUPにして、さらに、一番使用頻度の多いNAMEを取得したいのです。
表示したいのは、IDとNAMEです。
つまり、取得結果例は次のようになります。
取得結果例
ID,NAME----列名
1,A
2,C
3,D
SQL文をどのように作れば可能でしょうか?
ちなみに、IDやNAMEのマスタテーブルはありません。
自分では、「(select ID, NAME, count(*) from USER group by ID, NAME) COUNT」で、COUNTを内部テーブルにして、グループ内で一番多いcount(*)をmaxで取得してみようかと思ったんですが、そこからアイデアが出ませんでした。
お礼
getentは知りませんでした。これが求めていたものに一番近い気がします。 他にも使い道があって便利そうですね。 ありがとうございました。