SQL語句中的CASE WHEN和GROUP BY的使用方法詳解

SQL語句中的CASE WHEN和GROUP BY是常用的功能,可以使得查詢更加靈活、精確,本文將從多個方面闡述這兩個功能的使用方法。

一、CASE WHEN的使用

CASE WHEN是一個條件表達式,可以根據條件的不同返回不同的結果。語法如下:

SELECT 
    CASE 
        WHEN condition1 THEN result1 
        WHEN condition2 THEN result2 
        … 
        ELSE result 
    END 
FROM table_name;

其中,condition1、condition2等是邏輯條件,result1、result2等是對應條件的返回結果,ELSE result是當所有條件都不滿足時的返回結果。

1. 簡單的CASE WHEN使用

下面以一個簡單的例子來說明CASE WHEN的使用:

SELECT name,
       CASE sex
            WHEN 'M' THEN '男'
            WHEN 'F' THEN '女'
       END AS sex
FROM users;

以上語句將查詢表users中的name和sex兩列,並將sex列中的’M’替換成’男’,將’F’替換成’女’,並在查詢結果中顯示。

2. 多條件的CASE WHEN使用

多條件的CASE WHEN使用方式與簡單的類似,只是條件更加複雜。下面以一個示例來說明:

SELECT name,
       CASE 
            WHEN score >= 90 THEN '優秀'
            WHEN score >= 70 AND score < 90 THEN '良好'
            ELSE '不及格'
       END AS level
FROM student;

以上語句將查詢表student中的name和score兩列,當score大於等於90分時,返回’優秀’,當score大於等於70分小於90分時,返回’良好’,其他情況返回’不及格’。

二、GROUP BY的使用

GROUP BY是一種分組聚合操作,可以對查詢結果進行分組,以便進行聚合操作,如求和、求平均值等。語法如下:

SELECT column_name1, 
       column_name2, 
       …, 
       aggregate_function(column_name) 
FROM table_name 
WHERE condition 
GROUP BY column_name1, 
         column_name2, 
         …;

其中,column_name1、column_name2等是需要分組的列,可以有多個;aggregate_function是聚合函數,可以是SUM、AVG、COUNT等;condition是一個可選的條件,可以過濾不需要的數據。

1. 簡單的GROUP BY使用

下面以一個簡單的例子來說明GROUP BY的使用:

SELECT department_id,
       COUNT(*) AS count
FROM employees
GROUP BY department_id;

以上語句查詢表employees中的department_id列,並對該列進行分組,在每個分組中統計該部門的人數,並在查詢結果中顯示。

2. 按多列分組的GROUP BY使用

GROUP BY不僅可以按單列進行分組,還可以按多列進行分組。下面以一個示例來說明:

SELECT department_id,
       hire_date,
       COUNT(*) AS count
FROM employees
GROUP BY department_id, hire_date;

以上語句查詢表employees中的department_id和hire_date兩列,並按這兩列進行分組,在每個分組中統計該部門、該招聘日期的人數,並在查詢結果中顯示。

3. GROUP BY與HAVING的使用

當需要在分組後做進一步的篩選時,可以使用HAVING子句,它類似於WHERE子句,用於指定過濾條件。下面以一個示例來說明:

SELECT department_id,
       COUNT(*) AS count
FROM employees
GROUP BY department_id
HAVING COUNT(*) >= 10;

以上語句查詢表employees中的department_id列,並對該列進行分組,在每個分組中統計該部門的人數,並篩選出人數不少於10人的部門,在查詢結果中顯示。

總結

本文從CASE WHEN和GROUP BY兩個角度對SQL語句的使用方法做了詳細的闡述。CASE WHEN可用於條件判斷返回不同的結果,GROUP BY可用於將查詢結果進行分組聚合操作,兩者結合使用可以實現更加靈活的查詢。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/240654.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:24
下一篇 2024-12-12 12:24

相關推薦

  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • Python3支持多行語句

    Python3是一種高級編程語言,開發人員可以輕鬆地使用該語言編寫簡單到複雜的代碼。其中Python3支持多行語句,方便開發人員編寫複雜的代碼,提高代碼的可讀性和可維護性。 一、使…

    編程 2025-04-29
  • Python for循環語句打印九九乘法表

    本篇文章將詳細介紹如何使用Python的for循環語句打印九九乘法表。打印九九乘法表是我們初學Python時經常練習的一項基礎操作,也是編寫Python程序的基本能力之一。 1、基…

    編程 2025-04-29
  • Python符號定義和使用方法

    本文將從多個方面介紹Python符號的定義和使用方法,涉及注釋、變量、運算符、條件語句和循環等多個方面。 一、注釋 1、單行注釋 # 這是一條單行注釋 2、多行注釋 “”” 這是一…

    編程 2025-04-29
  • Python下載到桌面圖標使用方法用法介紹

    Python是一種高級編程語言,非常適合初學者,同時也深受老手喜愛。在Python中,如果我們想要將某個程序下載到桌面上,需要注意一些細節。本文將從多個方面對Python下載到桌面…

    編程 2025-04-29
  • Python中while語句和for語句的區別

    while語句和for語句是Python中兩種常見的循環語句,它們都可以用於重複執行一段代碼。然而,它們的語法和適用場景有所不同。本文將從多個方面詳細闡述Python中while語…

    編程 2025-04-29
  • Python匿名變量的使用方法

    Python中的匿名變量是指使用「_」來代替變量名的特殊變量。這篇文章將從多個方面介紹匿名變量的使用方法。 一、作為佔位符 匿名變量通常用作佔位符,用於代替一個不需要使用的變量。例…

    編程 2025-04-29
  • Python中自定義函數必須有return語句

    自定義函數是Python中最常見、最基本也是最重要的語句之一。在Python中,自定義函數必須有明確的返回值,即必須要有return語句。本篇文章將從以下幾個方面對此進行詳細闡述。…

    編程 2025-04-29
  • 百度地區熱力圖的介紹和使用方法

    本文將詳細介紹百度地區熱力圖的使用方法和相關知識。 一、什麼是百度地區熱力圖 百度地區熱力圖是一種用於展示區域內某種數據分佈情況的地圖呈現方式。它通過一張地圖上不同區域的顏色深淺,…

    編程 2025-04-29
  • Matlab中addpath的使用方法

    addpath函數是Matlab中的一個非常常用的函數,它可以在Matlab環境中增加一個或者多個文件夾的路徑,使得Matlab可以在需要時自動搜索到這些文件夾中的函數。因此,學會…

    編程 2025-04-29

發表回復

登錄後才能評論