|
Запрос SQL по подгруппам | ☑ | ||
|---|---|---|---|---|
|
0
Андрюха
06.01.12
✎
19:40
|
Есть таблица со следующей структурой: Category, Parent, Goods. Требуется запросом посчитать количество Goods по категориям. Я делаю так:
SELECT category, COUNT(goods) FROM mytable GROUP BY category
Запрос выводит количество goods в каждой конкретной категории, НО категории могут быть вложенными, в этом случае в Parent указывается Category-владелец. Как запросом посчитать количество Goods в Category, с учетом всех вложенных категорий? |
|||
|
1
Grusswelle
06.01.12
✎
19:47
|
SQL какой?
|
|||
|
2
szhukov
06.01.12
✎
19:48
|
Если вложенность одноуровневая то так можно
SELECT p.category, COUNT(distinct goods) FROM mytable p join mytable c on c.parent=p.category GROUP BY category |
|||
|
3
ДенисЧ
06.01.12
✎
19:48
|
Циклом в постобработке собрать
|
|||
|
4
szhukov
06.01.12
✎
19:48
|
+(2)
GROUP BY p.category |
|||
|
5
Андрюха
06.01.12
✎
19:51
|
(1) MySQL
(2) Не, количество вложенностей м.б. произвольным (3) Как вариант, но это уж на совсем худой конец |
|||
|
6
ДенисЧ
06.01.12
✎
19:52
|
хм... в мыскле собирать неограниченную иерархию?
К чёрту перья, я должен это видеть! |
|||
|
7
Grusswelle
06.01.12
✎
19:55
|
(0) На MySQL - никак. А вот последние версии MS SQL Server и, если не ошибаюсь, Oracle поддерживают иерархию.
ЗЫ: Иерархия - частный случай классификации. |
|||
|
8
Андрюха
06.01.12
✎
19:57
|
Жаль. Ну тогда всё в таблицу и перебором считать.
|
|||
|
9
Андрюха
06.01.12
✎
20:41
|
А на три уровня если?
|
|||
|
10
Андрюха
07.01.12
✎
05:11
|
Так взлетит?
SELECT t1.category, (COUNT(t1.goods)+COUNT(t2.goods)+COUNT(t3.goods)) AS allcount
|
| Форум | Правила | Описание | Секции | Поиск |