
環境は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
SELECT 文 GROUP での1件目を取得
SQL Server
-
5
SQLで部分的にGROUP BYしたいとき
Oracle
-
6
1列について重複行を除いて全列をSELECTするSQL文
MySQL
-
7
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
8
GROUP BYを行った後に結合したい。
Oracle
-
9
select insertで複数テーブルから値を取得したい
Oracle
-
10
GROUP BYでエラーが発生
SQL Server
-
11
SQL文のwhere条件文で使う <> の意味はなんですか
その他(データベース)
-
12
CASE文のエラーについて
Oracle
-
13
2つの項目が重複するレコードを抽出する方法はありますか?
MySQL
-
14
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
15
重複していないレコードの抽出方法について
MySQL
-
16
データを削除しても表領域の使用率が減りません
Oracle
-
17
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
18
SQL Left Join で重複を排除するには
SQL Server
-
19
SQLのエラー(~付近に不適切な構文があります)
SQL Server
-
20
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同一のカラム値をもつもの同士...
-
日付を一括UPDATE
-
IDENTITYを設定
-
Mysql DATE型のDEFAULT値
-
SQLで以下のような構文でコ...
-
同テーブルで指定カラム値を相...
-
一部のカラムでdistinctし全て...
-
頭に0が付く文字
-
条件付group byについて
-
group_concatを複数列に設定する
-
(初心者)MySQLやmaraDBで、crea...
-
accessで複数カラムの組み合わ...
-
order by 2カラムの先頭1文字...
-
Mysql(5.1)を利用してWebアプ...
-
update時にtimestampが更新され...
-
エクセルかワードで家系図を作...
-
数百ページあるPDFをWebで公開...
-
SQLの書き方
-
Accessで複数(3以上)...
-
sqlite3でrowid以外にid必要で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT文で、指定カラム以外の...
-
一部のカラムでdistinctし全て...
-
UNIONする際、片方テーブルしか...
-
MYSQLで全てのカラムから検索す...
-
AUTO_INCREMENTに0はダメ?
-
GREATESTで NULLをスルーする方...
-
now()かCURRENT_TIMESTAMPか
-
sql , insert で空行(全ての列...
-
SQLでカラムを追加し、条件に合...
-
【SQL】select に ワイルドカー...
-
MySQLで先頭にカラムを追加
-
カラムをコピーして、新規カラ...
-
ROUND関数で、四捨五入ができな...
-
カラムとコラムの使い分け
-
カラム上の重複を削除するクエ...
-
頭に0が付く文字
-
ドロップダウンリストの連動し...
-
エクセルかワードで家系図を作...
-
update時にtimestampが更新され...
-
日付を一括UPDATE
おすすめ情報