Первое значение из столбца при group by

SPGremlin
Дата: 26.05.2006 17:01:34
Существует ли в Оракловском SQL "группировочная" (не знаю как это по-научному) функция, работающая аналогично sum() max() avg() и т.п., но возвращающая _первое_ значение из схлопываемого столбца?

То есть чтобы можно было сделать вот так:

SELECT "first"(a), max(b), sum(c), d, e FROM mytable GROUP BY d, e

Но функции first нету. Как такая функция правильно называется?
Если такой нету, это по-моему странно... неужели взять первое(последнее) значение из столбца - менее естественное действие, чем взять среднее значение?

Спасибо.
iV@n
Дата: 26.05.2006 17:05:22
а что понимается по первым значением?
возможно могут помочь аналитические функции
Калина
Дата: 26.05.2006 17:05:51
Конечно менее!
первое и последнее - определены только при задании порядка сортировки, а если он не указан?

есть аналитические функции FIRST и LAST , пользуйтесь
------------------------------
Not affilated with VAZ
dmidek
Дата: 26.05.2006 17:10:04
SPGremlin
Существует ли в Оракловском SQL "группировочная" (не знаю как это по-научному) функция, работающая аналогично sum() max() avg() и т.п., но возвращающая _первое_ значение из схлопываемого столбца?

То есть чтобы можно было сделать вот так:

SELECT "first"(a), max(b), sum(c), d, e FROM mytable GROUP BY d, e

Но функции first нету. Как такая функция правильно называется?
Если такой нету, это по-моему странно... неужели взять первое(последнее) значение из столбца - менее естественное действие, чем взять среднее значение?

Спасибо.


А что значит "первое" ?

FIRST_VALUE

Обратите внимание на критерии сортировки ...
SPGremlin
Дата: 26.05.2006 17:16:52
Последняя ссылка требует логин:( Можно вас попросить процитировать?
dmidek
Дата: 26.05.2006 17:18:01
SPGremlin
Последняя ссылка требует логин:( Можно вас попросить процитировать?

Залогиньтесь, Вам же потом лучше будет. Перед Вами откроется бесценный кладезь информации
Калина
Дата: 26.05.2006 17:19:21
Без логина и по русски , ТЫНЦ
------------------------------
Not affilated with VAZ
andrey_anonymous
Дата: 26.05.2006 19:01:15
SPGremlin
То есть чтобы можно было сделать вот так:

SELECT "first"(a), max(b), sum(c), d, e FROM mytable GROUP BY d, e

SELECT min(a) keep(dense_rank first order by c nulls last), max(b), sum(c), d, e FROM mytable GROUP BY d, e