SQL-запрос для выбора одного из каждого вида - PullRequest
20 голосов
/ 21 февраля 2009

Допустим, у меня есть эта таблица:

id colorName
1 красный
2 синих
3 красных
4 синих

Как выбрать одного представителя каждого цвета?
Результат:
1 красный
2 синих

Ответы [ 6 ]

42 голосов
/ 21 февраля 2009

Не случайные представители, но ...

select color, min(id)
from   mytable
group by color;
12 голосов
/ 21 февраля 2009
select distinct colorname from mytable
10 голосов
/ 21 февраля 2009

В MS SQL Server и Oracle:

SELECT  id, colorName
FROM    (
        SELECT  id, colorName,
                ROW_NUMBER() OVER (PARTITION BY colorName ORDER BY id) AS rn
        FROM    colors
        ) q
WHERE   rn = 1
4 голосов
/ 21 февраля 2009

Попробуйте это:

SELECT colorName,  
MIN(id) AS id  
FROM table  
GROUP BY colorname  
3 голосов
/ 30 июля 2013

Вот самый простой способ:

SELECT DISTINCT colorName FROM mytable ORDER BY colorName
0 голосов
/ 01 января 2018

ВЫБЕРИТЕ DISTINCT colorname ОТ ВАШЕГО ПЛАНА ПО ID; (при желании изменить id на colorname *

или

ВЫБЕРИТЕ имя цвета ИЗ ГРУППОВОЙ ГРУППЫ ПО colorname;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...