我想从表NetQuatity
中获取BillDetails
的汇总,其中此聚合值应为非零。我写了一个查询,如下所示。但感觉它没有优化。有没有人可以折射这个。任何尝试都将受到赞赏。
SELECT * FROM
(
SELECT DISTINCT CustId, Name, SUM(NetQuantity) OVER(PARTITION BY CustId, Name) AS Quantity
FROM BillDetails
) T WHERE Quantity <> 0
答案 0 :(得分:0)
无法优化此查询,这是获取这些结果的唯一方法。如果您的表上有适当的索引,则不会出现性能问题。 已更新 对于预过滤零值行,您可以使用此查询:
SELECT * FROM(
SELECT DISTINCT CustId, Name, SUM(NetQuantity) OVER(PARTITION BY CustId, Name) AS Quantity
FROM BillDetails
WHERE NetQuantity <> 0) T WHERE Quantity <> 0