Небольшая настройка заставит его выполнить сортировку, за которой вы работаете.
я есть таблица данных о продажах SQL (например, приведенная ниже), как я могу сгенерировать набор результатов, который включает промежуточные итоги и идеально сортирует результаты в порядке убывания самого высокооплачиваемого клиента?
Итак, приведена таблица, подобная следующей:
CUS_ID | PRODUCT | AMOUNT
12 | A | 2.50
12 | B | 5.80
24 | A | 10.00
24 | B | 30.00
Я бы получил следующий результат:
CUS_ID | Product | AMOUNT
24 | A | 10.00
24 | B | 30.00
24 | Total | 30.00
12 | A | 2.50
12 | B | 5.00
12 | Total | 7.50
Пока что я могу прийти со следующим запросом:
SELECT cus_id, product, amount FROM Sales
UNION ALL
(SELECT cus_id, 'ZZZZ' AS product, SUM(amount) FROM Sales GROUP BY cus_id)
ORDER BY cus_id, product
Тем не менее, запрос использует «ZZZZ» вместо «Всего» (что может быть исправлено путем поиска и замены впоследствии), но он не сортируется по порядку количества.
РЕДАКТИРОВАТЬПожалуйста, не стесняйтесь публиковать ответы, не относящиеся к сортировке. Некоторые из ответов были на самом деле довольно полезны для меня.