У меня есть таблица PostgreSQL, которая выглядит как:SQL: несколько вложенных агрегатных функций
artists | songs
===================
artist1 | song a
artist1 | song b
artist2 | song c
и я хочу сделать отборное заявление, которое дает мне для каждого художника количество дорожек, а разница между числом его следы и количество художника с наиболее треки
так в этом случае
artist | number songs | difference
====================================
artist1 | 2 | 0
artist2 | 1 | 1
проблема у меня в том, что я использую count(songs)
для го e количество песен, а также max(count(songs))
(необходимое для вычисления разницы) в том же самом результате. И использование обоих дает мне проблемы с вложенными агрегированными функциями.
'order by' в разделе' over() 'на самом деле не требуется. –
@a_horse_with_no_name huh! никогда не знал, что наличие пустого предложения 'over' было даже возможно, но я играл с ним немного после вашего комментария, и он определенно работает (и выглядит намного, намного чище). Узнал что-то сегодня, спасибо! (отредактированный в моем ответе тоже) – Mureinik