Скажем, у меня есть эта таблица:SQL запрос, чтобы выбрать один из каждого вида
ID ColorName
1 красный
2 синий
3 красный
4 синий
Как я могу выбрать один представитель каждого цвета?
Результат:
1 красный
2 синих
Скажем, у меня есть эта таблица:SQL запрос, чтобы выбрать один из каждого вида
ID ColorName
1 красный
2 синий
3 красный
4 синий
Как я могу выбрать один представитель каждого цвета?
Результат:
1 красный
2 синих
Не случайные представители, но ...
select color, min(id)
from mytable
group by color;
Попробуйте это:
SELECT colorName,
MIN(id) AS id
FROM table
GROUP BY colorname
select distinct colorname from mytable
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
Thats много кода для MIN (id) ...;) –
Если есть третье поле, MIN не будет работать :) – Quassnoi
Вам нужно поместить псевдоним после круглой скобки, чтобы заставить это работать MS SQL –
Вот это самый простой способ:
SELECT DISTINCT colorName FROM mytable ORDER BY colorName
SELECT DISTINCT FROM ColorName yourtable ORDER BY ID; (изменить идентификатор ColorName при желании)
или
ВЫБОР ColorName ОТ yourtable GROUP BY ColorName;
ему тоже нужен идентификатор. –