現在、クエリの実行に時間がかかっている古いジョブのトラブルシューティングに取り組んでいます。古いジョブは最初のクエリを使用していますが、私は 2 番目のクエリを使用してテストしています。
間の違い:
Select Max(Cl1) as Tab,
Max(Cl2) as Tb,
Customer
From TableA
group by Customer
対
Select Customer,
Tab,
tb
From
(Select Customer,
Tab,
tb,
Rank() over (partition by Customer order by Cl1 desc) rk1,
Rank() over (partition by Customer order by Cl2 desc) rk2
From TableA) X
Where X.rk1 = 1 and X.rk2 = 1
Tab Tb 顧客
A45845 100052 シン
A45845 100053 シン
A45845 100054 悪臭
テーブルは、Tab 列と Tb 列の両方に常に値 (NULL または空白値なし) を持ちます。タブは特定の顧客に固有のものではありません。Tb は、連続して増加する整数であり、重複することはありません (一意)。顧客の最新のタブ値には、最新の Tb も含まれます。
結果は同じですが、この場合、クエリを変更するときに考慮しないことがありますか?
編集: 例を作成し、実際の列またはテーブル名を使用しない場合の 2 番目のクエリのエラーを修正しました。シナリオについても解説。更新された情報と元の投稿の修正についての謝罪は、再確認する前に呼び出されました.