sqlite выбрать уникальные значения из группы
Допустим есть таблица:
| id | name | company |
|---|---|---|
| 1 | masha | yandex |
| 2 | katya | yandex |
| 3 | katya | yandex |
| 4 | lina | |
| 5 | alisa | vk |
Мне нужен скрипт которые выведет уникальные значения по группировке по полю name, на выходе должны быть уникальные по name компании:
| id | name | company |
|---|---|---|
| 1 | masha | yandex |
| 2 | katya | yandex |
| 4 | lina | |
| 5 | alisa | vk |
Ответы (2 шт):
Автор решения: Vitaliy Zlobin
→ Ссылка
Воспользуйся оконной функцией ROW_NUMBER:
SELECT id,
name,
company
FROM
(
SELECT id,
name,
company,
ROW_NUMBER() OVER(PARTITION BY name, company ORDER BY id) AS NUM
FROM Employees
)
WHERE NUM = 1
Если в результате нужно только 2 поля, то ещё проще:
SELECT DISTINCT
name,
company
FROM Employees
Автор решения: CrazyElf
→ Ссылка
С виду это обычная группировка по двум полям, что-то вроде:
SELECT name,company
FROM employees
GROUP by name,company