SQL中的WITH語句:公共表達式CTE,用作臨時視圖或子查詢的定義方式,創(chuàng)建臨時的結果集
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
在SQL中,WITH語句通常被用作一種臨時視圖或子查詢的定義方式,可以創(chuàng)建臨時的結果集,這些結果集可以在主查詢中被引用。這種結構也被稱為公共表達式(CTE:Common Table Expressions)。 01 語法結構
02 應用示例這里通過表data_learning.product_order(商品銷量表)、data_learning.product(商品信息表)、data_learning.product_category(商品二級分類信息表)進行舉例,data_learning是之前創(chuàng)建的數(shù)據(jù)庫。數(shù)據(jù)表示例數(shù)據(jù)分別如下: data_learning.product_order(商品銷量表): data_learning.product(商品信息表): data_learning.product_category(商品二級分類信息表): 具體的創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表的SQL語句可以查看我之前的文章。
2.1 示例1、封裝和重用臨時表通過WITH語句,我們可以封裝復雜的子查詢或視圖,使其可重用。這樣可以提高查詢的可讀性和可維護性。例如,假設我們需要在多個查詢中使用某個常用的邏輯操作。使用WITH語句,我們可以將該邏輯操作封裝為一個臨時表,并在需要的地方重復使用。 比如 問題:查詢商品數(shù)量超過5的商品類別,常見的SQL如下:
使用with語句可以轉換為:
在實際工作中,在涉及到要使用多個表的多個業(yè)務時間字段時,我會先使用with語句建一個臨時結果集,再寫其他查詢語句。當然,有建表權限的話可以直接建一個臨時表,再做查詢。 2.2 示例2、分解多業(yè)務步驟邏輯復雜的業(yè)務邏輯可能需要多個步驟來計算最終結果。使用WITH語句可以使這些步驟更清晰。問題:查詢銷量超過2000的商品類別,這個類別有哪些產(chǎn)品及對應的產(chǎn)品價格和銷量時多少。
實際工作中涉及到的情況比這個步驟可能更多,此示例僅供理解WITH語句在分解多業(yè)務步驟邏輯中的應用。 2.3 示例3、數(shù)據(jù)清洗WITH語句也可以用來進行數(shù)據(jù)清洗,例如以下查詢將刪除重復的數(shù)據(jù)。 以下SQL語句僅供理解使用。
WITH語句在數(shù)據(jù)分析中非常有用,上述僅僅舉了幾個我在實際工作中比較常用的一些應用場景,實際上其應用場景遠不止這些,也歡迎朋友們一起交流自己在實際工作中都如何使用WITH語句。 該文章在 2024/4/10 0:05:43 編輯過 |
關鍵字查詢
相關文章
正在查詢... |