Oracle
分析函式可以在結果集中添加或刪除行嗎?
我是一個開始學習Oracle分析函式(視窗函式)的新手。
我從經驗中知道,在查詢中使用 SQL 機制時,充分了解它們的工作原理非常重要。犯錯誤並產生不正確的結果非常容易。
例如,如果關係是 1:M,左連接可以傳播出重複的行,但編寫查詢的人沒有意識到這一點。而對於非專家, GROUP BY 可能會產生意外的行數等。
問題:
是否存在分析函式可以在結果集中添加或刪除行的情況?或者我可以安全地假設分析函式只提供計算列的附加資訊——並且永遠不會影響行數?
簡短的回答似乎是否定的。
- 視窗函式僅將附加資訊作為額外列添加到結果集中。他們永遠不會在結果集中添加或刪除行。
來源:
PluralSight 課程:Scott Hecht的 Oracle 和 SQL Server 中的高級 SQL 查詢
什麼是解析函式:
- 結果行計數與傳入行計數相同。
- 上次執行的 SQL 操作。
- 對查詢結果執行。
- 不受 GROUP BY、HAVING 或 WHERE 的影響
我會向任何想要了解更多關於分析函式和其他高級 SQL 查詢主題的人推薦該課程。