2010-02-10 3 views
4

Я прислушался к какой-либо помощи при построении SQL-статута. В настоящее время у меня есть следующие:SQL ORDER BY total внутри GROUP BY

SELECT a, b, count(1) 
FROM table 
GROUP BY a, b 
ORDER BY a asc, count(1) DESC 

Каждая строка отображает сумму всех уникальных B в пределах каждой группы а и заказы на А в алфавитном порядке, а затем самой высокой встречаемости B до самого низкого. Мне бы хотелось, чтобы я мог сортировать по сумме в каждой группе A (рассматривать каждую строку как промежуточный итог).

+0

Можете привести пример вывода данных. например в настоящее время вы, скажем, «США, Калифорния, 15», «США, Вашингтон, 10»; «Австралия, Виктория, 3». Как вы хотите переустановить эти данные? –

+0

«Мне бы хотелось, чтобы я мог сортировать по сумме в каждой группе A (рассматривать каждую строку как промежуточный итог)». Общее количество б? – Brettski

+0

Я не уверен, что вы ищете. Не могли бы вы пояснить и, возможно, добавить небольшую примерную таблицу, текущие результаты и результаты, которые вы хотите получить? –

ответ

4
SELECT a, b, COUNT(*) AS bcnt, 
     (
     SELECT COUNT(*) 
     FROM mytable mi 
     WHERE mi.a = mo.a 
     ) AS acnt 
FROM mytable mo 
GROUP BY 
     a, b 
ORDER BY 
     acnt DESC, bcnt DESC