У меня есть таблица Oracle, которая содержит данные, аналогичные следующий основной пример:Oracle SQL Query для штабелей Парето Диаграммы
+--------+----------+
| SERIES | CATEGORY |
+--------+----------+
| green | apple |
| green | pear |
| green | pear |
| yellow | apple |
| yellow | apple |
| yellow | pear |
| yellow | pear |
| yellow | pear |
| yellow | banana |
| yellow | banana |
| yellow | banana |
| red | apple |
+--------+----------+
Я хотел бы, чтобы сгенерировать Парето как графики этих данных, которые должны выглядеть как Stacked Диаграмма Парето,
чтобы создать этот график, я хотел бы выполнить запрос SQL и получить следующий вывод:
+----------+--------+-------+
| CATEGORY | SERIES | COUNT |
+----------+--------+-------+
| pear | green | 2 |
| pear | yellow | 3 |
| apple | green | 1 |
| apple | yellow | 2 |
| apple | red | 1 |
| banana | yellow | 3 |
+----------+--------+-------+
Фактическая таблицы имеет миллионы записей, и в настоящее время занимает значительное количество времени для запроса базы данных в качестве текущей процедуры я использую не очень эффективно:
Порядка категорий по количеству записей в каждом категория:
SELECT CATEGORY, COUNT(CATEGORY) FROM FRUIT GROUP BY CATEGORY ORDER BY COUNT(CATEGORY);
Тогда для каждой категории I список соответствующих серий в порядке серии:
SELECT SERIES, COUNT(SERIES) FROM FRUIT WHERE CATEGORY = [current category] GROUP BY SERIES ORDER BY SERIES;
что бы наиболее эффективным способом Que ry в базе данных (желательно для одного оператора SQL), чтобы получить желаемый результат?
насчет: 'SELECT, категория, тип, COUNT (*) FROM FRUIT GROUP по категориям SERIES ORDER BY COUNT (*)'? –