Ключевое слово Oracle "Разделение по"
Эта концепция очень хорошо sql-syntax объясняется принятым ответом, но sql-syntax я считаю, что чем больше sql-statement примеров вы видите, тем лучше sql-statement они понимаются. Вот пример select-statement постепенного увеличения:
1) Начальник сказал: «Получите sql-statement количество товаров, которые sql-query у нас есть на складе, сгруппированные sql-query по брендам»
Вы говорите: «нет проблем»
SELECT
BRAND
,COUNT(ITEM_ID)
FROM
ITEMS
GROUP BY
BRAND;
Результат:
+--------------+---------------+
| Brand | Count |
+--------------+---------------+
| H&M | 50 |
+--------------+---------------+
| Hugo Boss | 100 |
+--------------+---------------+
| No brand | 22 |
+--------------+---------------+
2) Начальник говорит: «А sql-statement теперь дайте мне список всех select-statement товаров с указанием их бренда analytic-functions И количества товаров соответствующего sql-statement бренда»
Вы можете попробовать:
SELECT
ITEM_NR
,BRAND
,COUNT(ITEM_ID)
FROM
ITEMS
GROUP BY
BRAND;
Но oracle вы получаете:
ORA-00979: not a GROUP BY expression
Вот где появляется sql-query OVER (PARTITION BY BRAND)
:
SELECT
ITEM_NR
,BRAND
,COUNT(ITEM_ID) OVER (PARTITION BY BRAND)
FROM
ITEMS;
Что означает:
-
COUNT(ITEM_ID)
- получить количество элементов -
OVER
- По набору строк. -
(PARTITION BY BRAND)
- одного бренда
И результат:
+--------------+---------------+----------+
| Items | Brand | Count() |
+--------------+---------------+----------+
| Item 1 | Hugo Boss | 100 |
+--------------+---------------+----------+
| Item 2 | Hugo Boss | 100 |
+--------------+---------------+----------+
| Item 3 | No brand | 22 |
+--------------+---------------+----------+
| Item 4 | No brand | 22 |
+--------------+---------------+----------+
| Item 5 | H&M | 50 |
+--------------+---------------+----------+
и sql-query т. д.
sql
oracle
window-functions
Ключевое слово Oracle "Разделение по"
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.