Стыдно, но не могу составить запрос. БД — 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
Заранее спасибо!
Привет, Аноним!
Вы пишешь 21 сентября 2007:
А> Distinct не подходит
Возьми MIN(Value) и выполни GROUP BY Name
--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 2.1 beta
Здравствуйте, Аноним, Вы писали:
А>Нужно получить
А>Name Value
А>A 1 // Тут неважно какая именно запись из группы A возьмется (можно 1, 2, 3)
А>B 4 // Тут тоже неважно какая именно запись из группы B возьмется (4 или 5)
А>(Name должен содержать уникальные значения)
Select name, min(value)
from table
group by name
Здравствуйте, Alex.Che, Вы писали:
AC>Привет, Аноним!
AC>Вы пишешь 21 сентября 2007:
А>> Distinct не подходит
AC>Возьми MIN(Value) и выполни GROUP BY Name
AC>--
AC>With best regards, Alex Cherednichenko.
Спасибо! Оно. А если Value — строковое значение, или нужно еще вывести поля какие, или поля такие, что к ним групповая операция не применима, тогда как быть?
Привет, Аноним!
Вы пишешь 21 сентября 2007:
А> Спасибо! Оно. А если Value — строковое значение, или нужно еще вывести поля какие,
А> или поля такие, что к ним групповая операция не применима, тогда как быть?
MIN() работает всегда, за исключением BLOB'ов и массивов.
--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 2.1 beta