Допустим, у меня есть следующий студент данные:Сортировка по совокупной стоимости в SQL
classroom gender student_id
-------------------------------------
First Grade M 123
First Grade F 124
First Grade F 125
Second Grade M 126
Third Grade M 127
...
Я хочу, чтобы получить следующий результат: топ-3 крупнейших классные комнаты, заказанные общего числа студентов подробно для каждого:
classroom boys_count girls_count total_count
--------------------------------------------------
Third Grade 30 30 60
First Grade 20 5 25
Fourth Grade 10 10 20
Как это сделать в sql? При необходимости я могу использовать определенные функции postrges.
То, что я пытался до сих пор:
SELECT count(*) as total_count
, gender
, classroom
ORDER BY 1
GROUP BY classroom, gender
LIMIT 3
Тогда я реорганизовать результаты в каком-либо языке сценариев. Но это слишком медленно. Я хочу получить правильные результаты одним запросом
Это очень простой SQL-запрос. Вы знаете язык? –
Это не агрегирование. Это простое дополнение и заказ. –
@GordonLinoff True. Я понимаю, что я упростил свою реальную проблему. Я отредактирую свой вопрос –