在 SQL 中,計算列是在視圖中擴展資料模型的寶貴工具。它們允許您從現有列中獲取新值,從而釋放更複雜分析和演示的可能性。但是,當您需要使用計算列本身作為同一視圖中後續計算的一部分時會發生什麼?
考慮一個常見場景,其中您有一個包含以下列的表:
在您的一個視圖中,您透過簡單添加ColumnA 和 ColumnB 就建立了一個名為 calccolumn1 的計算欄位。現在,您希望使用 calccolumn1 透過將 calccolumn1 除以 ColumnC 來計算另一列 calccolumn2。
最初,您可以嘗試如下編寫查詢:
Select ColumnA, ColumnB, ColumnA + ColumnB As calccolumn1 calccolumn1 / ColumnC as calccolumn2
不幸的是,這不起作用,因為calccolumn2 無法引用直接計算之前計算的calccolumn1。
解決此問題的一種方法是使用巢狀查詢:
Select ColumnA, ColumnB, calccolumn1, calccolumn1 / ColumnC as calccolumn2 From ( Select ColumnA, ColumnB, ColumnC, ColumnA + ColumnB As calccolumn1 from t42 );
此方法建立一個計算 calccolumn1 的子查詢。然後,主查詢可以在計算中使用子查詢中的 calccolumn1。
如果可行,另一個選擇是簡單地在主查詢中重複計算calccolumn1:
Select ColumnA, ColumnB, ColumnA + ColumnB As calccolumn1, (ColumnA + ColumnB) / ColumnC As calccolumn2 from t42;
這種方法避免了嵌套查詢的複雜性,特別是當計算calccolumn1 比較簡單。
以上是如何在 SQL 視圖中使用巢狀計算列執行複雜計算?的詳細內容。更多資訊請關注PHP中文網其他相關文章!