用於數值資料分箱的 SQL 技術
本指南示範如何將 SQL 資料庫中的數值資料分類到定義的範圍內。 假設您有一個帶有數字列(例如“分數”)的表格。目標是產生一個摘要,顯示每個範圍內的分數計數。
範例:
總表可能如下圖所示:
Score Range | Frequency |
---|---|
0-9 | 11 |
10-19 | 14 |
20-29 | 3 |
... | ... |
以下是在 SQL Server 2000 及更高版本中實現此目的的方法:
方法 1:子查詢中的 CASE 表達式
此方法使用子查詢內的 CASE
表達式為每個分數分配範圍標籤,然後使用外部查詢來計算每個範圍內的出現次數。
<code class="language-sql">SELECT t.range AS "Score Range", COUNT(*) AS "Frequency" FROM ( SELECT score, CASE WHEN score BETWEEN 0 AND 9 THEN '0-9' WHEN score BETWEEN 10 AND 19 THEN '10-19' ELSE '20-99' -- Handle scores outside defined ranges END AS range FROM scores ) t GROUP BY t.range;</code>
方法二:主查詢中的 CASE 表達式
或者,CASE
表達式可以直接嵌入主查詢中,稍微簡化結構。
<code class="language-sql">SELECT CASE WHEN score BETWEEN 0 AND 9 THEN '0-9' WHEN score BETWEEN 10 AND 19 THEN '10-19' ELSE '20-99' -- Handle scores outside defined ranges END AS "Score Range", COUNT(*) AS "Frequency" FROM scores GROUP BY CASE WHEN score BETWEEN 0 AND 9 THEN '0-9' WHEN score BETWEEN 10 AND 19 THEN '10-19' ELSE '20-99' END;</code>
這些方法有效地將資料分組並匯總到自訂範圍中,為資料分佈提供有價值的見解。請記住調整 CASE
語句以符合您的特定分數範圍。 考慮為定義範圍之外的值新增錯誤處理。
以上是如何在 SQL 中將數值資料分組到範圍中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!