私は、このようSUM() OVER(PARTITION BY)
を使用していた私の非常に基本的なSQLクエリのスキルを改善しようとしているとSQL Server 2012でAdventureWorks2012サンプルデータベースを使用しています:各顧客の総売上高の値を取得するにはT-SQLの複数の基準をどのように合計しますか?
SELECT DISTINCT
SUM(SubTotal) OVER (PARTITION BY CustomerID), CustomerID
FROM
Sales.SalesOrderHeader
しかし、私は顧客&年でSubTotal
を合計して、YEAR(OrderDate)
を使用して注文日のちょうど年の部分を抽出したいと思います。
最初に、注文日の年の部分を顧客とは別に年ごとに使用することはできないため、このアプローチはどうにかなるわけではありません。
第2に、複数のパーティション基準を使用する方法がありません。
私の未熟さが私にこれを間違った方法で考えさせていると思うので、理論的なアプローチは特定の解決策ほど役に立つと思います。
私はExcelのSUMIFS()
機能
あなたゴードンありがとうとGROUP BY句に非常に高く評価
date
を追加 - 私は歩くことができる前に実行しようとしていると思います!私は標準的なGROUP BYの拡張を認識しておらず、あなたのコードは私が望むことをしているように見えますが、もっと深く見ていきます。 – fraggle