我清楚地記得 T-SQL 永遠不會讓你混合LAG和WHERE. 例如,
SELECT FOO
WHERE LAG(BAR) OVER (ORDER BY DATE) > 7
永遠不會作業。無論您做什么,T-SQL 都不會運行它。但是 T-SQL 是否曾經讓您LAG與HAVING.
注意:答案需要做的就是給出一個基于理論或基于檔案的原因,或者給出任何例子。
uj5u.com熱心網友回復:
從SELECT 陳述句的邏輯處理順序:
以下步驟顯示了 SELECT 陳述句的邏輯處理順序或系結順序......
- 從
- 在
- 加入
- 在哪里
- 通過...分組
- WITH CUBE 或 WITH ROLLUP
- 擁有
- 選擇
- 清楚的
- 訂購方式
- 最佳
SELECT視窗函式在之后的級別進行評估HAVING,因此答案是否定的,您不能在HAVING子句中使用視窗函式。
uj5u.com熱心網友回復:
Having子句只能與Group by子句一起使用。為了使用Group by列出的列,應使用Group by列進行聚合。Group by只能與函式等聚合函式一起使用min,max,sum,count。因此,不可能將having子句與LAG分析功能結合起來。
為了使用LAGand Having,應該使用 CTE 或子查詢。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/425858.html
上一篇:T-SQL:JSON陣列
