2

この集計値がゼロ以外のNetQuatityテーブルからの集計を取得したい。BillDetails以下のようにクエリを書きました。しかし、最適化されていないように感じます。これを屈折させることができる人はいますか?どんな試みでも大歓迎です。

SELECT * FROM
(
    SELECT DISTINCT CustId, Name, SUM(NetQuantity) OVER(PARTITION BY CustId, Name) AS Quantity
        FROM BillDetails
) T WHERE Quantity <> 0
4

1 に答える 1

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
于 2013-06-24T08:59:27.227 に答える