URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 5464
[ Назад ]

Исходное сообщение
"DISTINCT только для одного поля?"

Отправлено Urms , 12-Янв-08 01:32 
Можно ли сделать так, чтобы в SELECT параметр DISTINCT относился только к одному из выводимых полей?

GROUP BY пробовал, работает намного медленнее.


Содержание

Сообщения в этом обсуждении
"DISTINCT только для одного поля?"
Отправлено GD , 12-Янв-08 02:33 
>Можно ли сделать так, чтобы в SELECT параметр DISTINCT относился только к
>одному из выводимых полей?
>
>GROUP BY пробовал, работает намного медленнее.

в pgsql работает select distinct on (one_field) ....


"DISTINCT только для одного поля?"
Отправлено Urms , 12-Янв-08 13:09 
Забыл уточнить, у меня MySQL. Нужно придумать что-то именно для него

"DISTINCT только для одного поля?"
Отправлено angra , 12-Янв-08 17:59 
Желание мягко говоря странное, представим таблицу с полями (a,b) и двумя записями (1,3),(2,3). Что должен выдать запрос select a, distinct b from tablename? Понятно что выдана будет одна запись во втором столбце которой будет 3, но что при этом должно быть в первом и почему?



"DISTINCT только для одного поля?"
Отправлено Urms , 14-Янв-08 19:09 
>Желание мягко говоря странное, представим таблицу с полями (a,b) и двумя записями
>(1,3),(2,3). Что должен выдать запрос select a, distinct b from tablename?
>Понятно что выдана будет одна запись во втором столбце которой будет
>3, но что при этом должно быть в первом и почему?
>

Мне нужно, чтобы работало это аналогично GROUP BY b, в моем случае для одинаковых b будут одинаковые  a, но DISTINCT использовать не могу, т.к. один из параметров это rate вычисляемый с помощью MATCH AGAINST IN BOOLEAN MODE и используемый для сортировки. Он может немного отличаться для одинаковых b.


"DISTINCT только для одного поля?"
Отправлено tux2002 , 16-Янв-08 13:25 
>Желание мягко говоря странное, представим таблицу с полями (a,b) и двумя записями
>(1,3),(2,3). Что должен выдать запрос select a, distinct b from tablename?
>Понятно что выдана будет одна запись во втором столбце которой будет
>3, но что при этом должно быть в первом и почему?
>

:) Не.... будет произведение select a.a, b.b from (select a from tablename) a, (select distinct b b from tablename) b

Для (1,2) (3,4)

1 3
2 3
1 4
2 4
:)))) Шутка