- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL GROUPで件数の一番多いレコードのみ取る)
SQL GROUPで件数の一番多いレコードのみ取る
このQ&Aのポイント
- ORACLE10のテーブルから、IDをGROUPにして、一番使用頻度の多いNAMEを取得する方法を教えてください。
- IDやNAMEのマスタテーブルはありませんが、内部テーブルを利用してグループ内で一番多いcount(*)を取得する方法を探しています。
- 最終的には、IDとNAMEの組を表示したいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
SELECT A.ID,A.NAME FROM (SELECT ID,NAME,COUNT(*) KAZU FROM USER GROUP BY ID,NAME) A LEFT OUTER JOIN (SELECT ID,NAME,COUNT(*) KAZU FROM USER GROUP BY ID,NAME) B ON A.ID=B.ID AND A.KAZU<B.KAZU GROUP BY A.ID,A.NAME HAVING COUNT(B.ID)=0 こんな感じかな? ID、NAMEと件数からなるクエリを二つ作り、それぞれを結合 させます。本命のAから見て、同じIDを持ち、自分より件数の 大きいB側のレコード数を調べます。これが0であるもの、即ち、 「自分の件数より大きい件数のデータが無い」が抽出条件です。 尚、最大件数と同数のデータは全て抽出されます。
お礼
ありがとうございますー☆ 求めていたものですミ^×^ミ