
環境は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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
SQL文で複数の項目のうちひとつの項目のみの重複を排除する方法を教えてください。
MySQL
-
[SQL]重複内容を持つデータから1件抽出かつ複数のカラムを表示したい
その他(データベース)
-
-
4
1列について重複行を除いて全列をSELECTするSQL文
MySQL
-
5
GROUP BYを行った後に結合したい。
Oracle
-
6
SELECT 文 GROUP での1件目を取得
SQL Server
-
7
SQLで部分的にGROUP BYしたいとき
Oracle
-
8
CASE文のエラーについて
Oracle
-
9
重複していないレコードの抽出方法について
MySQL
-
10
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
11
GROUP BYでエラーが発生
SQL Server
-
12
SQL Left Join で重複を排除するには
SQL Server
-
13
SQL文のwhere条件文で使う <> の意味はなんですか
その他(データベース)
-
14
2つの項目が重複するレコードを抽出する方法はありますか?
MySQL
-
15
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
16
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
17
データがあれば○○なければのSQL
その他(プログラミング・Web制作)
-
18
Viewにインデックスは張れますか?
Oracle
-
19
単一グループのグループ関数ではありません。
Oracle
-
20
select insertで複数テーブルから値を取得したい
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UNIONする際、片方テーブルしか...
-
AUTO_INCREMENTに0はダメ?
-
SELECT文で、指定カラム以外の...
-
MYSQLで全てのカラムから検索す...
-
カラムとコラムの使い分け
-
SQLでカラムを追加し、条件に合...
-
構造が異なる二つのテーブルをu...
-
一部のカラムでdistinctし全て...
-
カラムをコピーして、新規カラ...
-
エクセルかワードで家系図を作...
-
GREATESTで NULLをスルーする方...
-
【SQL】select に ワイルドカー...
-
now()かCURRENT_TIMESTAMPか
-
ドロップダウンリストの連動し...
-
DBエラーの意味
-
他のシートの検索
-
INDIRECT関数の代替方法は?
-
DBの定義のサイズを大きくし過...
-
type date にnullをinsert
-
テーブルの列数を調べたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT文で、指定カラム以外の...
-
一部のカラムでdistinctし全て...
-
UNIONする際、片方テーブルしか...
-
ホームページを作ろうと思いま...
-
AUTO_INCREMENTに0はダメ?
-
SQLでカラムを追加し、条件に合...
-
MYSQLで全てのカラムから検索す...
-
now()かCURRENT_TIMESTAMPか
-
カラムとコラムの使い分け
-
MySQLで論理名を取得する方法
-
GREATESTで NULLをスルーする方...
-
【SQL】select に ワイルドカー...
-
エクセルかワードで家系図を作...
-
カラムをコピーして、新規カラ...
-
波形データを格納するデータベース
-
update時にtimestampが更新され...
-
カラム表示の幅
-
アドレスブックの登録について
-
最大2147483647なのに何故int(1...
-
MySQLで先頭にカラムを追加
おすすめ情報