【SQL入門】DISTINCTが効かない!?

更新日時:2019.06.18

カテゴリ:SQL

久しぶりにSQL文を書いていて重複しているレコードを一行にまとめようと思ったところ少し困った。

 

name id comment
1 一太郎 こんにちは
2 二太郎 こんにちは
3 二太郎 hello
4 三太郎 こんにちは

こんなテーブルを

 

name id comment
一太郎 1 こんにちは
二太郎 2 こんにちは
三太郎 4 こんにちは

こうしたかった。
nameで絞ればいいだけですね。

 

そこで私はDISTINCTを使ってしまった。。。
DISTINCTが効かない…

SELECT DISTINCT Table_1.name, Table_1.id,Table_1.comment
From Table_1
id name comment
一太郎 1 こんにちは
二太郎 2 こんにちは
二太郎 3 hello
三太郎 4 こんにちは

ダメじゃん…

当たり前ですね。
私は「SELECT DISTINCT Table_1.name」と書けばnameだけ重複しているレコードをまとめられると思っていたのです。
この勘違いで10分ぐらい取られてしまったorz

結局下のSQLで取得できました。

SELECT Table_1.name, Table_1.id,Table_1.comment
From Table_1
WHERE id IN (SELECT min(id) FROM Table_1 GROUP BY name)

idの最小の値でnameをとってきました。
普通に考えれば指定してあげないと取得できないよね。。

久しぶりのSQL文に苦戦した僕でした。

 

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。

CAPTCHA