🖥
MySQL – GROUP BY で最小/最大の値を持つレコード1件ずつだけに絞り込む
クエリの例
サブクエリでいちどIDリストを得てからWHEREに渡すと良さそうだ
SELECT * FROM examples WHERE id IN (
SELECT MIN(id) FROM examples GROUP BY name
);
結果
id | name
-- | --
1 | Alice
1 | Bob
1 | Carol
テーブル
id | name
-- | --
1 | Alice
2 | Alice
3 | Alice
1 | Bob
2 | Bob
3 | Bob
1 | Carol
2 | Carol
3 | Carol
CREATE TABLE examples (
id INT,
name VARCHAR(255)
);
INSERT INTO examples (id, name) VALUES (1, "Alice");
INSERT INTO examples (id, name) VALUES (2, "Alice");
INSERT INTO examples (id, name) VALUES (3, "Alice");
INSERT INTO examples (id, name) VALUES (1, "Bob");
INSERT INTO examples (id, name) VALUES (2, "Bob");
INSERT INTO examples (id, name) VALUES (3, "Bob");
INSERT INTO examples (id, name) VALUES (1, "Carol");
INSERT INTO examples (id, name) VALUES (2, "Carol");
INSERT INTO examples (id, name) VALUES (3, "Carol");
補足
MINをMAXに変えればidが最大値のものを得る
Fiddle
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2023-01-08
Discussion