有効的なDP-600問題集はJPNTest.com提供され、DP-600試験に合格することに役に立ちます!JPNTest.comは今最新DP-600試験問題集を提供します。JPNTest.com DP-600試験問題集はもう更新されました。ここでDP-600問題集のテストエンジンを手に入れます。
DP-600問題集最新版のアクセス
「194問、30% ディスカウント、特別な割引コード:JPNshiken」
Fabric ウェアハウスには、SalesOrderDetail という名前のテーブルがあります。SalesOrderDetail には、OrderQty、ProductID、SalesOrderlD という 3 つの列があります。SalesOrderDetail には、SalesOrderlD と ProductID の組み合わせごとに 1 つの行が含まれます。
各販売注文に含まれる各製品が、その販売注文の総数量に占める割合を計算する必要があります。
どのT-SQLステートメントを実行すべきですか?
正解:C
包括的かつ詳細な説明
各販売注文に含まれる各製品が、その販売注文の総数量に占める割合を計算する必要があります。
ステップ1:要件を分析する
テーブル: 販売注文詳細
列: OrderQty、ProductID、SalesOrderID
各行は、販売注文における1つの製品を表します。
要件:各SalesOrderIDについて、各製品が注文総数量に占める割合を計算してください。
つまり、我々は以下のことを行う必要がある。
SalesOrderIDごとに注文合計数量を計算します。
各製品の注文数量をその合計で割ります。
それをパーセンテージで表してください。
ステップ2:選択肢を評価する
A) OVER(ORDER BY ProductID) を使用する
誤り:ORDER BY句はデータをセグメント化するのではなく、順序を定義するだけです。販売注文ごとにグループ化する必要があります。
B) OVER(PARTITION BY ProductID) を使用します
誤り:これは、販売注文ごとではなく、すべての販売注文における製品ごとの割合を計算するものです。
C). OVER(PARTITION BY SalesOrderID) を使用します。
正しい方法:これは、販売注文IDごとに注文数量の合計を計算し、各製品の数量をその合計で割ります。
まさに要件を満たしている。
D). OVER(ORDER BY SalesOrderID) を使用します
間違いです。繰り返しますが、ORDER BY句は行の順序を並べるだけで、グループ化するわけではありません。
ステップ3:クエリの修正
選択
販売注文ID、
製品ID、
注文数量、
CAST(1. * OrderQty / SUM(OrderQty)
OVER(PARTITION BY SalesOrderID) * 100 AS DECIMAL(5,2))
製品IDによる割合として
Sales.SalesOrderDetail から;
選択肢Cが正解である理由
SalesOrderIDによるパーティション分割により、分母は現在の注文の合計数量になります。
これにより、各製品の販売注文における正しい割合内訳が生成されます。
参考文献
T-SQLウィンドウ関数
PARTITION BYを使用した集計関数
Microsoft Fabric Warehouse T-SQL サポート