有三種主要方法可以利用 sql 計算百分比:直接計算、使用窗口函數以及使用 case 表達式。直接計算通過將分子除以分母并乘以 100 獲得百分比;窗口函數允許根據組按分母值計算百分比;而 case 表達式則可依據條件計算不同的百分比。
如何使用 SQL 計算百分比
直接計算
最直接的方法是使用以下語法:
Percentage = (numerator / denominator) * 100
登錄后復制
例如,要計算銷售額占收入的百分比:
Sales_Percentage = (Sales / Revenue) * 100
登錄后復制
使用窗口函數
窗口函數允許我們在按組計算百分比時使用分母值。OVER 子句指定計算的范圍。
例如,使用 ROW_NUMBER() 函數為每個部門計算銷售額在總銷售額中所占的百分比:
SELECT Department, Sales, SUM(Sales) OVER() AS TotalSales, (Sales / TotalSales) * 100 AS Sales_Percentage FROM Sales GROUP BY Department
登錄后復制
使用 CASE 表達式
CASE 表達式可以用來根據條件計算不同的百分比。例如,根據客戶類型計算折扣百分比:
SELECT CustomerType, CASE WHEN CustomerType = 'Gold' THEN 0.1 WHEN CustomerType = 'Silver' THEN 0.05 ELSE 0 END AS Discount_Percentage FROM Customers
登錄后復制
注意事項
確保分母不為零,否則會產生除零錯誤。
根據需要對計算結果進行舍入或截斷。
使用適當的別名為百分比列,以便于識別。