Я новичок в форуме и SQL и очень ценю всю информацию. Я не мог найти решение, которое работает для меня, уже рассмотренного, поэтому подумал, что попробую здесь. Работа в Снежинке. Мой набор данных выглядит так (извиняюсь за неудобное форматирование):
PO | DIV | PROD | QTY | CUST
123 | 1 | x | 10 | Sonic
234 | 1 | x | 9 | Sonic
345 | 1 | x | 8 | McD
456 | 1 | x | 10 | Wendy's
Я хотел бы суммировать QTY по DIV, PROD и CUST. Как только я получу эти суммированные количества, я хотел бы взять наибольшую СУММУ (КОЛ-ВО) по DIV и PROD, но сохранить поле CUST. Таким образом, ответ из приведенного выше будет выглядеть так:
1 | x | 19| Sonic
Просто обратите внимание, у меня, очевидно, есть гораздо большая база данных, так что у меня будут все уникальные комбинации продуктов / делений с указанным max (sum ()), около 600K строк.
Код, который у меня здесь, подводит меня к точке, где у меня есть сумма (QTY), но теперь мне нужно вытащить строку с максимальной суммой (QTY), сохраняя поле CUST. Вы можете помочь? Я нашел некоторую информацию о наибольшем числе на группу, но не был уверен, что это то, что мне следует использовать и как
SELECT DIV, PROD, CUST, SUM(QTY) as QTY
from table
GROUP BY
DIV,
PROD,
CUST
Order by
DIV,
PROD
РЕДАКТИРОВАТЬ: подход Джея CTE сработал для меня, но я забыл упомянуть, что хотел бы создать из этого таблицу. СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ТАБЛИЦУ не работает с CTE. Есть ли способы создать таблицу с использованием подхода CTE или другого подхода?
Спасибо!
CREATE TABLE <new_table> AS select * from table(result_scan(last_query_id()))
- person Stuart Ozer   schedule 28.03.2018