Oracle

分析函式可以在結果集中添加或刪除行嗎?

  • September 24, 2021

我是一個開始學習Oracle分析函式(視窗函式)的新手。

我從經驗中知道,在查詢中使用 SQL 機制時,充分了解它們的工作原理非常重要。犯錯誤並產生不正確的結果非常容易。

例如,如果關係是 1:M,左連接可以傳播出重複的行,但編寫查詢的人沒有意識到這一點。而對於非專家, GROUP BY 可能會產生意外的行數等。


問題:

是否存在分析函式可以在結果集中添加或刪除行的情況?或者我可以安全地假設分析函式只提供計算列的附加資訊——並且永遠不會影響行數?

簡短的回答似乎是否定的。

  • 視窗函式僅將附加資訊作為額外列添加到結果集中。他們永遠不會在結果集中添加或刪除行。

來源:

PluralSight 課程:Scott Hecht的 Oracle 和 SQL Server 中的高級 SQL 查詢

什麼是解析函式:

  • 結果行計數與傳入行計數相同。
  • 上次執行的 SQL 操作。
  • 對查詢結果執行。
  • 不受 GROUP BY、HAVING 或 WHERE 的影響

幻燈片 1 | 幻燈片 2

我會向任何想要了解更多關於分析函式和其他高級 SQL 查詢主題的人推薦該課程。

引用自:https://dba.stackexchange.com/questions/299155