DISTINCT одного поля для выборки всей таблицы

есть таблица:

id  type    script date                     name    status  priority    

6   3       link    Пт 10.04.20 16:38:48    name    1       1
7   2       link    Пт 10.04.20 16:38:48    name    1       1,2
8   1       link    Пт 10.04.20 16:38:48    name    1       1,2
9   2       link    Пт 10.04.20 16:38:48    name    1       1,2

Если сделать так:

SELECT DISTINCT `type` FROM `api_script` WHERE `status` = 1

То всё получается правильно:

type

3
2
1

Но, если выбрать все поля, то не работает. Как я понял, DISTINCT работает сразу со всеми полями. Можно ли как-то сделать что бы он работал только с первым, а если нет, тогда какие варианты?

Желаемый результат:

id  type    script date                     name    status  priority    

6   3       link    Пт 10.04.20 16:38:48    name    1       1
7   2       link    Пт 10.04.20 16:38:48    name    1       1,2
8   1       link    Пт 10.04.20 16:38:48    name    1       1,2

Ответы (1 шт):

Автор решения: 0xdb

Из комментариев:

1) то, что вы написали - group by (type) 2) Спасибо, работает

Да, работает, но это только иллюзия. Сегодня выведет для type=2 - id=7, завтра - id=9.
Выберите критерий сортировки, например id. Если такого критерия нет, значит выводить все столбцы не надо, т.к. данные выбранные случайно - это мусор. Сделайте так (на fiddle):

with q (id, type, rest) as (
    select 6, 3, 'link    10.04.20 16:38:48    name    1       1   ' union all
    select 7, 2, 'link    10.04.20 16:38:48    name    1       1,2 ' union all
    select 8, 1, 'link    10.04.20 16:38:48    name    1       1,2 ' union all
    select 9, 2, 'link    10.04.20 16:38:48    name    1       1,2 ')
select id, type, rest from (
    select q.*, row_number() over (partition by type order by id asc) rn
    from q
) t
where rn=1
order by id;

id  type    rest
6   3       link    10.04.20 16:38:48    name    1       1   
7   2       link    10.04.20 16:38:48    name    1       1,2 
8   1       link    10.04.20 16:38:48    name    1       1,2 
→ Ссылка