Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выборка уникальных значений 
:(
    Опции темы
Medic
Дата 6.6.2005, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.6.2005

Репутация: нет
Всего: нет



У меня есть такая база:
(id, gr, state)
Например, имеющая следующие поля:
(1, 1, 3)
(2, 1, 2)
(3, 1, 4)
(4, 2, 1)
(5, 2, 2)
(6, 2, 4)
(7, 3, 1)
(8, 3, 3)
(9, 3, 2)

Необходимо выбрать записи с уникальными gr и при этом имеющими наиболбшее значение state (в пределах одного gr), т.е необходимо получить слдующую выборку:
(3, 1, 4)
(6, 2, 4)
(8, 3, 3)

SELECT * WHERE 1 GROUP BY gr
выдает записи с уникальными gr, но не макс state. Необходимо выполнить это в 1 запрос.




PM MAIL   Вверх
boevik
Дата 6.6.2005, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 2
Всего: 35



А если так:
Код

SELECT id, gr, max(state) WHERE 1 GROUP BY gr



--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Mal Hack
Дата 6.6.2005, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



ORDER BY state я так понимаю еще надо добавить.
PM ICQ   Вверх
Medic
Дата 6.6.2005, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.6.2005

Репутация: нет
Всего: нет



Однако smile
PM MAIL   Вверх
Akina
Дата 7.6.2005, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Код

SELECT Table.id, Table.gr, Table.state
FROM [Table] 
INNER JOIN 
(SELECT Table.gr, Max(Table.state) AS MaxState
FROM [Table]
GROUP BY Table.gr
) Q1 
ON Table.gr = Q1.gr
WHERE Table.state=Q1.MaxState;

Добавлено @ 09:02
Вывод одной строки при наличии дубля - как-нить уж сам...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.