Допустим, следующий набор данных:
item | amount | total_items
beer 5 10
beans 5 15
... et c
Представьте, что есть 100 элементов. Я хочу SELECT TOP 20 ITEMS ORDER BY AMOUNT DESC
. Это оставит 80 элементов, которые я хочу объединить / объединить в одну item
строку с именем "Other"
, где ее столбец amount
будет SUM
из amount
s из этих 80 строк, те же логики c для total_items
. Это означает, что из начальных 100 строк останется только 21.
Можно ли сделать это одним запросом? Подход, о котором я думаю, следующий:
1) ВЫБЕРИТЕ ТОП 20 и сохраните в таблице # temp1
2) ВЫБЕРИТЕ остальное и сохраните в таблице # temp2
3) ВЫБЕРИТЕ СУММЫ amount
и total_items
из # temp2, чтобы он стал одной строкой
4) Объедините два результата вместе
Конечно, должно быть лучше и больше эффективный способ сделать это.