• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL GROUPで件数の一番多いレコードのみ取る)

SQL GROUPで件数の一番多いレコードのみ取る

このQ&Aのポイント
  • ORACLE10のテーブルから、IDをGROUPにして、一番使用頻度の多いNAMEを取得する方法を教えてください。
  • IDやNAMEのマスタテーブルはありませんが、内部テーブルを利用してグループ内で一番多いcount(*)を取得する方法を探しています。
  • 最終的には、IDとNAMEの組を表示したいです。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.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であるもの、即ち、 「自分の件数より大きい件数のデータが無い」が抽出条件です。 尚、最大件数と同数のデータは全て抽出されます。

mot1177
質問者

お礼

ありがとうございますー☆ 求めていたものですミ^×^ミ

関連するQ&A