欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

第二章匯總和聚合數據(一)-創(chuàng)新互聯

為完整地了解Oracle的聚合函數,我們還要知道當數據包含NULL時,情況會怎樣。銷售獎勵只有銷售人員才有,非銷售人員沒有,所以反映在HR.EMPLOYEES表中就是那些非銷售人員的COMMISSION_PCT字段的值為NULL。如果想計算或同級COMMISSION_PCT的平均值,或是此字段有值的行的數量,可以用下面的SQL語句列出聚合計算的結果:

創(chuàng)新互聯建站主營韶山網站建設的網絡公司,主營網站建設方案,App定制開發(fā),韶山h5微信小程序開發(fā)搭建,韶山網站營銷推廣歡迎韶山等地區(qū)企業(yè)咨詢 select count(commission_pct),avg(commission_pct)     from hr.employee;

---------------------------------------------------------------

COUNT(COMMISSION_PCT)   AVG(COMMISSION_PCT)

                      38                   .255

---------------------------------------------------------------

  雖然我們知道在統(tǒng)計薪水時有107位員工,但在統(tǒng)計銷售獎勵時,COUNT函數忽略了那些COMMISSION_CPT為NULL值的行,統(tǒng)計出僅有38位員工有銷售獎勵。同樣,當計算員工的平均銷售獎勵時,Oracle也忽略了NULL值對應的那些行,僅僅計算那些有值的行。

   僅僅在兩種特殊情況下,Oracle在聚合函數中考慮了NULL值。第一種是在GROUPING功能里,用來檢驗包含NULL值的分析函數的結果,是直接由所在的表得來,還是由分析計算得到的最終聚合“NULL集”得來。第二種情況是在COUNT(*)的功能里。因為通配符“*”表示表中所有的字段,所以Oracle忽略任何實際的數據,而單獨統(tǒng)計行數,看起來像是把NULL值和普通值一樣對待。

  為了演示,下面的SQL語句明確顯示了COUNT(*)與COUNT(COMMISSION_PCT)的不同:

select count(*),count(commission_pct)     from hr.employee;

---------------------------------------------

COUNT(*)   COUNT(COMMISSION_PCT)

     107                        38

---------------------------------------------

  COUNT(*)統(tǒng)計了表中的所有行,而COUNT(COMMISSION_PCT)僅僅統(tǒng)計了表中字段COMMISSION_PCT不為NULL的那些行。

   在分組進行數據匯總時,SELECT語句中選中的字段或值,要么參加聚合計算,要么被涵蓋到GROUP BY子句中。若想寫出語法正確的GROUP BY子句,就要永遠牢記:值要么用來分組,要么用來參加聚合計算——沒有其他用途。

  當按聚合或其他函數進行排序時,Oracle提供了排序字段的簡化符號。不必在ORDER BY后面累贅地寫上字段的全名,直接用他們在SELECT 語句中的位置序號即可。

Select department_id, job_id,min(salary), avg(salary), max(salary)     from hr.employee     group by department_id, job_id     order by 1, 5 desc ;

   語句中ORDER BY 子句后面的1與5分別代表SELECT 語句中第一個位置和第五個位置的DEPARTMENT_ID與max(salary)。

  基于聚合函數或分組的結果,我們想排除某些數據組。也就是說,我們希望在GROUP BY子句的后面,再跟一個類似WHERE的子句,在分組或聚合之后進行篩選。

  SQL有一個HAVING子句,可以對數據進行選擇。HAVING子句的條件可以無限地復雜,所以可以在分組排序中使用復合條件。

select department_id, job_id, min(salary), avg(salary), max(salary), count(*)     from hr.employees     group by department_id, job_id     having count(*)>1     and min(salary) between 2500 and 17000     and avg(salary) !=5000     and max(salary)/min(salary)<2;

另外有需要云服務器可以了解下創(chuàng)新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享標題:第二章匯總和聚合數據(一)-創(chuàng)新互聯
網址分享:http://chinadenli.net/article36/cohgsg.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站設計全網營銷推廣App設計小程序開發(fā)企業(yè)網站制作域名注冊

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都seo排名網站優(yōu)化