首頁 >資料庫 >mysql教程 >如何在 SQL 中將數值資料分組到範圍中?

如何在 SQL 中將數值資料分組到範圍中?

Barbara Streisand
Barbara Streisand原創
2025-01-17 21:21:11612瀏覽

How Can I Group Numerical Data into Ranges in SQL?

用於數值資料分箱的 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn