Xpoint
   [напомнить пароль]

Запрос SQL с несколькими группировками

Метки: [без меток]
2007-02-06 10:51:15 [обр] Валера(0/24)[досье]

Есть таблица: поле1 поле2 поле3. Нужно сначала сгруппировать выборку по полю1 (посчитать кол-во строк), потом каждую из групп еще сгруппировать по полю2 (тоже кол-во строк подсчитать) ну и вывести в нужном порядке (ORDER). Как с одной группировкой понятно:

SELECT COUNT(*) AS cnt FROM table_name GROUP BY field1 ORDER BY cnt

Можно конечно сделать так:

SELECT DISTINCT field2 FROM table_name

а потом

SELECT COUNT(*) AS cnt FROM table_name GROUP BY field1 HAVING field2=[очередное_поле] ORDER BY cnt

Может можно это сделать в одном запросе?

спустя 23 минуты [обр] Роман Чемисов(0/350)[досье]
Валера[досье]
Не совсем подходящий раздел (лучше бы спросили где-нибудь в форуме по БД)...
Можеть быть поможет использование UNION?
спустя 1 час [обр] Валера(0/24)[досье]
прошу прощения, забыл указать тему. Просьба перенести в раздел про SQL.
спустя 4 минуты [обр] Валера(0/24)[досье]
Роман Чемисов[досье], не думаю, насколько я помню, UNION служит для объединения результатов запросов, а тут данные связаны, то есть данные из одной группы используют данные из другой. Или я что-то упустил?
спустя 9 минут [обр] Алексей В. Иванов(2/2861)[досье]
М Перенесено из форума "Прочее"
спустя 3 часа 58 минут [обр] Кирилл [Kirk] Королев(88/673)[досье]
а чем
select count(distinct field1),count(field2) from table group by field1,field2
не подходит?
спустя 8 минут [обр] Валера(0/24)[досье]
Кирилл [Kirk] Королев[досье], дак подходит :) Спасибо
Powered by POEM™ Engine Copyright © 2002-2005