Тема: як обійти групування, коли воно синтаксично необхідне?
select usr_login, max(usr_birthyear) from "user"
Як видно - перша колонка не містить функції групування, а друга містить
Необхідно: з першої колонки витягти будь-яке поле, яке відповідає максимальному значенню року народження
P.S. бажано до таблички "user" звертатись лише один раз
Поточне рішення:
select
usr_login,
usr_birthyear
from (
Select usr_login, usr_birthyear from "user"
order by usr_birthyear desc)
where rownum = 1;
Відповідь на питання "Нащо?":
В реальності використовується інша таблиця table1, а те саме поле usr_birthyear є обчислювальним із немаленькою складністю, і кількість останнього бажано мінімізувати. У наведеному рішенні поле обчислюється лише перший раз, другий - воно вже обчислене.