Архив документации OpenNet.ru / Раздел "Базы данных, SQL" / Индекс

Использование итоговых функций

Как и большинство других языков запросов, PostgreSQL поддерживает итоговые функции. Текущая реализация Postgres имеет некоторые ограничения для итоговых функций. Особенно, пока существует подсчет итогов такими функциями как count, sum, avg (среднее), max (максимум) и min (минимум) над множествами экземпляров, итоги могут только появляться в списке объектов запроса, и не прямо в определении (в предложении). Например,

SELECT max(temp_lo) FROM weather;
    
разрешено, хотя в
SELECT city FROM weather WHERE temp_lo = max(temp_lo);
    
нет. Однако, это часто требуется и для достижения нужного результата может использоваться вложенная выборка:
SELECT city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weather);
    

Итоги могут также быть при group by предложениях:

SELECT city, max(temp_lo)
    FROM weather
    GROUP BY city;
    


Архив документации на OpenNet.ru