【发布时间】:2014-02-04 21:12:18
【问题描述】:
我想通过支出选择前 7 个类别,然后将其余类别归为“其他”。这段代码似乎可以工作,但运行至少需要 20 分钟,我认为是因为 NOT IN 有时不适用于索引。
我的数据库有大约 2 万条记录
SELECT [Category], [Total Spending] FROM
(SELECT TOP 7 [Category], SUM([Spending]) AS [Total Spending]
FROM Data
GROUP BY [Category]
ORDER BY SUM([Spending]) DESC
) AS Q1
UNION ALL
SELECT'Other' AS [Category], SUM(Spending) AS [Total Spending]
FROM Data
WHERE Category NOT IN
(SELECT TOP 7 [Category]
FROM Data
GROUP BY [Category]
ORDER BY SUM([Spending]) DESC)
我的问题是这两个问题的组合,都回答了:
【问题讨论】:
标签: sql performance ms-access-2010 grouping aggregate-functions