SQL Having用法示例小結(jié)
SQL Having用法
HAVING子句用于過濾分組之后的數(shù)據(jù)。
1、如果過濾條件中使用了聚合函數(shù),或行已經(jīng)被分組,則必須使用HAVING來替換WHERE。否則,報(bào)錯(cuò)。
2、HAVING 必須聲明在 GROUP BY 的后面。
# 查詢各個(gè)部門中最高工資大于10000的部門信息 SELECT department_id, MAX(salary) max_salary FROM employees GROUP BY department_id # 對分組后的數(shù)據(jù)進(jìn)行篩選,選出部門中最高工資大于10000的部門 HAVING max_salary > 10000;
開發(fā)中,我們使用HAVING的前提是SQL中使用了GROUP BY。
如果沒有使用GROUP BY,使用HAVING,則整個(gè)表中的所有記錄會被當(dāng)成一組,然后對這一組記錄根據(jù)HAVING中的條件進(jìn)行篩選。
SELECT department_id, MAX(salary) max_salary FROM employees HAVING max_salary > 10000;
HAVING 不能單獨(dú)使用,必須要跟 GROUP BY 一起使用。
1、當(dāng)過濾條件中有聚合函數(shù)時(shí),則此過濾條件必須聲明在HAVING中。
2、當(dāng)過濾條件中沒有聚合函數(shù)時(shí),則此過濾條件聲明在WHERE中或HAVING中都可以。但是,建議大家聲明在WHERE中。
補(bǔ)充:SQL Having用法
拿個(gè)業(yè)務(wù)場景說這個(gè)案例,比如我們有個(gè)表里面可能有批改過的數(shù)據(jù),批改過得數(shù)據(jù)不會隨著新批改的數(shù)據(jù)覆蓋,而是逐條插入表中,如果想找出包含最早批改的數(shù)據(jù)和最新批改數(shù)據(jù)的話,那么我們就需要用到了havinng 用法,假設(shè)最開始的批單號是000,批單號是累加的
比如我們有個(gè)表 table 表里面有兩個(gè)字段 訂單號(order_no) 和 批單號(endorseq_no)
那么寫法就是
select order_no from table group by order_no having sum(case when endorseq_no = '000' then 1 else 0 end) >= 1 --這個(gè)是判斷必須包含最初的批單 and count(*) >= 2 --這個(gè)是判斷除了最初的批單之外還需要有新批改的批單
到此這篇關(guān)于SQL Having用法的文章就介紹到這了,更多相關(guān)SQL Having 用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用SQL腳本讀取Excel中的sheet數(shù)量及名稱的方法代碼
這篇文章介紹了用SQL腳本讀取Excel中的sheet數(shù)量及名稱的方法代碼,有需要的朋友可以參考一下2013-09-09SQL入侵恢復(fù)xp_cmdshell方法總結(jié)
恢復(fù)xp_cmdshell SQL Server阻止了對組件 'xp_cmdshell' 的過程'sys.xp_cmdshell' 啟用2010-08-08Sql Server 視圖數(shù)據(jù)的增刪改查教程
這篇文章主要介紹了Sql Server 視圖數(shù)據(jù)的增刪改查教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01SQL 導(dǎo)入導(dǎo)出Excel數(shù)據(jù)的語句
從Excel文件中,導(dǎo)入數(shù)據(jù)到SQL數(shù)據(jù)庫中,很簡單2009-11-11SQL Server開放(或關(guān)閉)端口連接的實(shí)現(xiàn)步驟
為了保證系統(tǒng)的安全性,可以關(guān)閉/開啟端口,本文主要介紹了SQL Server開放(或關(guān)閉)端口連接的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11SQL Server中row_number分頁查詢的用法詳解
這篇文章主要介紹了SQL Server中row_number的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07