@kill94

Как правильно сгруппировать строки?

например есть таблица 9bd1c0470ae749cd8c0b00b6c82c98f7.jpg
в столбце [Column2] есть повторяющие строки и мне нужно вывести без повторения.
как это можно сделать ? чтоб результат был таким
e86008a13b3c4868ac1fc81e95eac152.jpg
  • Вопрос задан
  • 439 просмотров
Пригласить эксперта
Ответы на вопрос 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если без `id`, то SELECT DISTINCT, иначе GROUP BY
Ответ написан
@Noxy
увлекаюсь SQL
Можно оконными функциями решить:
-- вариант 1
SELECT s.id, s.Column1, s.Column2 
FROM (
    SELECT t.id, t.Column1, t.Column2, RN = ROW_NUMBER() OVER (PARTITION BY t.Column2 ORDER BY id ASC)
    FROM test1 AS t
) S
WHERE S.RN = 1

-- вариант 2 с CTE
;WITH S AS (
    SELECT t.id, t.Column1, t.Column2, RN = ROW_NUMBER() OVER (PARTITION BY t.Column2 ORDER BY id ASC)
    FROM test1 AS t 
)
SELECT s.id, s.Column1, s.Column2
FROM s
WHERE S.RN = 1
Ответ написан
Комментировать
@nozzy
Symfony, Laravel, SQL
Без оконных функций:
select 
id,
Column1,
Column2
from your_table
where id in (
  select min(id) from your_table 
  group by Column2
  )
order by id;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы