Трабла с запросом
От: Аноним  
Дата: 21.09.07 13:31
Оценка:
Стыдно, но не могу составить запрос. БД — Oracle. Нужно вытянуть из таблицы по одной записи, принадлежащей группам записям, объединенным по некоторому условию (по значению некоторого стобца). Короче на примере это выглядит так:

Таблица table:
Name Value
A 1
A 2
A 3
B 4
B 5

Нужно получить

Name Value
A 1 // Тут неважно какая именно запись из группы A возьмется (можно 1, 2, 3)
B 4 // Тут тоже неважно какая именно запись из группы B возьмется (4 или 5)

(Name должен содержать уникальные значения)

Distinct не подходит ибо SELECT DISTINCT Name, Value FROM table вернет уникальность по 2-м столбцам, а нужно только по NAME

Заранее спасибо!
Re: Трабла с запросом
От: Alex.Che  
Дата: 21.09.07 13:38
Оценка:
Привет, Аноним!
Вы пишешь 21 сентября 2007:

А> Distinct не подходит


Возьми MIN(Value) и выполни GROUP BY Name

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 2.1 beta
Re: Трабла с запросом
От: Sshur Россия http://shurygin-sergey.livejournal.com
Дата: 21.09.07 13:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Нужно получить


А>Name Value

А>A 1 // Тут неважно какая именно запись из группы A возьмется (можно 1, 2, 3)
А>B 4 // Тут тоже неважно какая именно запись из группы B возьмется (4 или 5)

А>(Name должен содержать уникальные значения)


Select name, min(value) 
from table
group by name
Шурыгин Сергей

"Не следует преумножать сущности сверх необходимости" (с) Оккам
Re[2]: Трабла с запросом
От: Аноним  
Дата: 21.09.07 13:46
Оценка:
Здравствуйте, Alex.Che, Вы писали:

AC>Привет, Аноним!

AC>Вы пишешь 21 сентября 2007:

А>> Distinct не подходит


AC>Возьми MIN(Value) и выполни GROUP BY Name


AC>--

AC>With best regards, Alex Cherednichenko.

Спасибо! Оно. А если Value — строковое значение, или нужно еще вывести поля какие, или поля такие, что к ним групповая операция не применима, тогда как быть?
Re[3]: Трабла с запросом
От: Alex.Che  
Дата: 21.09.07 13:56
Оценка:
Привет, Аноним!
Вы пишешь 21 сентября 2007:

А> Спасибо! Оно. А если Value — строковое значение, или нужно еще вывести поля какие,

А> или поля такие, что к ним групповая операция не применима, тогда как быть?

MIN() работает всегда, за исключением BLOB'ов и массивов.

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 2.1 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.