• ベストアンサー

重複を除いた結果が欲しい

重複を除いた結果が欲しいのですが、 DISTINCTだと取得する全てのカラムの内容が一致すると重複と言う扱いになってしまいます。 複数のカラムデータを取得する場合でも、指定したカラムデータが重複したら除くようにしたいのですが、スマートな構文はないでしょうか?

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

それはグループ化です。但し、「指定したカラム」以外のフィールドの 扱いをどうするか考えておく必要があります。最大値、最小値、平均値、 合計、カウント、・・・など SELECT 指定カラム1,指定カラム2,MAX(指定外カラム1),・・・ FROM テーブル GROUP BY 指定カラム1,指定カラム2

takatokoko
質問者

お礼

ご回答ありがとうございます。 “GROUP BY 指定カラム1,指定カラム2”だと、 指定カラム1は重複しないと思いますが、指定カラム1が違えば指定カラム2は重複してしまうと思うのです。 ご意見、参考にさせて頂きました、ありがとうございます。

その他の回答 (1)

回答No.1

具体的なアドバイスを得たいなら、もっと具体的な内容を提示してください。どういう母体データから、どういう結果を得たいのでしょうか? また、MySQLならMySQL 4.0以前と4.1以降で、サブクエリの実装など大きな機能差がありますから、バージョンも明記してください。

takatokoko
質問者

お礼

ご回答ありがとうございます。 +---+--------+--------+ | id | namae | myouji | +---+--------+--------+ | 1 | タロウ  | スズキ | +---+--------+--------+ | 2 | ハナコ  | スズキ | +---+--------+--------+ | 3 | タロウ  | サトウ | +---+--------+--------+ 上記のレコードを、“~ ORDER BY id”で実行して、 id1のレコードのみが取得できれば成功です。 (id2は、myoujiが重複したので除く) (id3は、namaeが重複したので除く) MySQL5.0です。 サブクエリを使わないで実現できますでしょうか?