亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索

SQL 聚合函數(shù)如何結(jié)合條件聚合?

舞姬之光
發(fā)布: 2025-10-16 14:01:01
原創(chuàng)
870人瀏覽過
答案:SQL中通過CASE與聚合函數(shù)結(jié)合實現(xiàn)條件統(tǒng)計,如COUNT(CASE WHEN...)統(tǒng)計滿足條件的行數(shù),SUM(CASE WHEN...THEN值ELSE 0 END)對符合條件的數(shù)據(jù)求和,并可使用多條件CASE進行分類匯總,提升查詢效率。

sql 聚合函數(shù)如何結(jié)合條件聚合?

SQL 聚合函數(shù)結(jié)合條件聚合,通常使用 CASE 表達式嵌套在聚合函數(shù)內(nèi)部,實現(xiàn)對不同條件的數(shù)據(jù)分別統(tǒng)計。這種方式可以在一個查詢中返回多個條件下的匯總結(jié)果,而無需多次查詢或連接。

1. 使用 CASE 配合 COUNT 實現(xiàn)條件計數(shù)

當(dāng)你想統(tǒng)計滿足特定條件的行數(shù)時,可以在 COUNT 中使用 CASE:

COUNT(CASE WHEN 條件 THEN 1 END) 只會對滿足條件的行計數(shù),不滿足的返回 NULL,而 COUNT 不統(tǒng)計 NULL 值。

例如:統(tǒng)計某個訂單表中“已完成”和“已取消”的訂單數(shù)量:
SELECT 
    COUNT(CASE WHEN status = 'completed' THEN 1 END) AS completed_count,
    COUNT(CASE WHEN status = 'canceled' THEN 1 END) AS canceled_count
FROM orders;
登錄后復(fù)制

2. 結(jié)合 SUM 進行條件求和

若需對符合條件的數(shù)據(jù)求和,將 CASE 放入 SUM 函數(shù)中:

SUM(CASE WHEN 條件 THEN 值 ELSE 0 END) 是常見寫法,確保不滿足條件時加 0,避免遺漏。

聚好用AI
聚好用AI

可免費AI繪圖、AI音樂、AI視頻創(chuàng)作,聚集全球頂級AI,一站式創(chuàng)意平臺

聚好用AI115
查看詳情 聚好用AI
示例:按用戶統(tǒng)計收入,區(qū)分新老客戶:
SELECT 
    user_id,
    SUM(CASE WHEN is_new = 1 THEN amount ELSE 0 END) AS new_customer_revenue,
    SUM(CASE WHEN is_new = 0 THEN amount ELSE 0 END) AS existing_customer_revenue
FROM sales
GROUP BY user_id;
登錄后復(fù)制

3. 多條件分類聚合

可以使用 CASE 的多分支形式(CASE WHEN ... THEN ... ELSE)進行分組統(tǒng)計。

比如:按成績等級統(tǒng)計學(xué)生人數(shù):

SELECT
    COUNT(CASE 
        WHEN score >= 90 THEN 1 
    END) AS A_grade,
    COUNT(CASE 
        WHEN score >= 80 AND score < 90 THEN 1 
    END) AS B_grade,
    COUNT(CASE 
        WHEN score >= 70 AND score < 80 THEN 1 
    END) AS C_grade,
    COUNT(CASE 
        WHEN score < 70 THEN 1 
    END) AS F_grade
FROM students;
登錄后復(fù)制

4. 與 GROUP BY 結(jié)合實現(xiàn)分組條件聚合

在分組查詢中,每個分組內(nèi)獨立執(zhí)行條件聚合,非常實用。

例如:按部門統(tǒng)計男女性員工的平均工資:

SELECT
    department,
    AVG(CASE WHEN gender = 'M' THEN salary END) AS avg_male_salary,
    AVG(CASE WHEN gender = 'F' THEN salary END) AS avg_female_salary
FROM employees
GROUP BY department;
登錄后復(fù)制
注意:AVG 會自動忽略 NULL,所以不需要 ELSE 分支。

基本上就這些。通過在聚合函數(shù)中嵌套 CASE 表達式,能靈活實現(xiàn)各種條件統(tǒng)計,是 SQL 數(shù)據(jù)分析中的常用技巧。關(guān)鍵在于理解聚合函數(shù)如何處理 NULL 值,并合理設(shè)計 CASE 的返回值。

以上就是SQL 聚合函數(shù)如何結(jié)合條件聚合?的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!

相關(guān)標(biāo)簽:
最佳 Windows 性能的頂級免費優(yōu)化軟件
最佳 Windows 性能的頂級免費優(yōu)化軟件

每個人都需要一臺速度更快、更穩(wěn)定的 PC。隨著時間的推移,垃圾文件、舊注冊表數(shù)據(jù)和不必要的后臺進程會占用資源并降低性能。幸運的是,許多工具可以讓 Windows 保持平穩(wěn)運行。

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號