環境はmysql5.2です。
例えば以下のようなテーブルがある時
pref city town
----------------
東京 港区 A町
東京 南区 C町
大阪 北区 D町
大阪 北区 E町
愛知 南区 F町
愛知 南区 G町
prefのみが重複しないように、全てのカラムを取得しようと思っているのですが、
select distinct pref, city, town …
とすると当然全て取得されます
また、
select disitinct pref …
とするとたしかにprefは重複せずにすむのですが、cityとtownを取得することが出来ません。
どのようにすればprefだけは重複させずに全てのカラムを取得することが出来るのでしょうか。
ご存じの方がいらっしゃればご教授お願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
IDの最小値をとるなら簡単な話で
select pref,city,town FROM テーブル
WHERE id IN(SELECT min(id) FROM テーブル GROUP BY pref)
No.2
- 回答日時:
mysql 5.1.54 で確認しましたが
select *
from tbl t1
where not exists
( select 1 from tbl t2
where t1.pref=t2.pref
and ( t1.city, t1.town ) > ( t2.city, t2.town ) );
と書けるようです。
No.1
- 回答日時:
>prefだけは重複させずに全てのカラムを取得する
今回の例で言えば具体的にどういう結果ならよいのでしょうか?
group by してgroup_concatしたいのかな?
この回答への補足
すみません説明が不足していました。
この場合は
pref city town
----------------
東京 港区 A町
東京 南区 C町
大阪 北区 D町
大阪 北区 E町
愛知 南区 F町
愛知 南区 G町
からprefでdistinctして、prefが同じものがある場合、IDが一番小さい物だけを取得したいということです。つまり以下の結果を期待します。
東京 港区 A町
大阪 北区 D町
愛知 南区 F町
説明不足ですみませんでした
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript WordPressのコンタクトフォーム7にて送信者の位置情報を送らせたい 2 2022/09/14 23:28
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- PostgreSQL 列が存在しないと言われる 2 2023/02/10 18:33
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
- 所得税 サラリーマンの副業による税金還付。どこまで教えたら「違法な脱税指南」となるのか? 2 2023/03/15 07:43
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- その他(国内) 良く、東京と大坂や名古屋、何処が一番、都会ですか?みたいな質問が有りますけど、あれって「区」まで入れ 3 2022/03/27 17:52
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
SQL文で複数の項目のうちひとつの項目のみの重複を排除する方法を教えてください。
MySQL
-
[SQL]重複内容を持つデータから1件抽出かつ複数のカラムを表示したい
その他(データベース)
-
-
4
GROUP BYを行った後に結合したい。
Oracle
-
5
SQLで部分的にGROUP BYしたいとき
Oracle
-
6
SQL Left Join で重複を排除するには
SQL Server
-
7
GROUP BYでエラーが発生
SQL Server
-
8
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
9
group byで指定したカラム以外のカラムの値を取得したい
PostgreSQL
-
10
重複していないレコードの抽出方法について
MySQL
-
11
1列について重複行を除いて全列をSELECTするSQL文
MySQL
-
12
count関数の値をwhere句で使用する方法について
MySQL
-
13
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
14
あるDBから別のDBのテーブルをselectしたい
MySQL
-
15
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
16
count(1)とcount(*)の違い
Oracle
-
17
SELECT 文 GROUP での1件目を取得
SQL Server
-
18
データの先頭文字の置換
Oracle
-
19
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
20
データソース名および指定された既定のドライバが見つかりません。
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
自動販売機でホットとアイスが...
-
エクセルかワードで家系図を作...
-
MySQL(5.5)1テーブル内のカラ...
-
SELECT文で、指定カラム以外の...
-
エディターについて
-
SQLでカラムを追加し、条件に合...
-
SQLServerのプライマリキーとイ...
-
PHP 画像のアップロード Qiita
-
日付を一括UPDATE
-
DBの定義のサイズを大きくし過...
-
INDIRECT関数の代替方法は?
-
テーブルの列数を調べたい
-
create tableのフィールド名
-
WHEREなどの条件が多い場合、ど...
-
アーメス・パピルスについて・...
-
フレンドリストのようなものを...
-
大量の項目を対象に効率的に検...
-
MySQLのKey属性「MUL」について
-
PLSQLのTO_CHARについて
-
インデックスキーを設定するとK...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一部のカラムでdistinctし全て...
-
SELECT文で、指定カラム以外の...
-
now()かCURRENT_TIMESTAMPか
-
UNIONする際、片方テーブルしか...
-
MYSQLで全てのカラムから検索す...
-
GREATESTで NULLをスルーする方...
-
構造が異なる二つのテーブルをu...
-
カラムをコピーして、新規カラ...
-
SQLでカラムを追加し、条件に合...
-
ドロップダウンリストの連動し...
-
カラムとコラムの使い分け
-
sql , insert で空行(全ての列...
-
エクセルかワードで家系図を作...
-
MySQLで先頭にカラムを追加
-
AUTO_INCREMENTに0はダメ?
-
日付を一括UPDATE
-
DBエラーの意味
-
SQLで、行ごとのとある要素を比...
-
ROUND関数で、四捨五入ができな...
-
SQLについて教えて下さい。 SEL...
おすすめ情報