數據庫中最簡單最原始的聚合函數


    當走在嘈雜的城市中時,什么能讓我們變得冷靜呢?心聲向我述說了一些,“簡單”不一定就真的簡單,它是相對的,當我們長大了,想要保持兒時的單純,我想只能在夢中由心所發了,因為現實讓我們都變了,要想重新找回曾經的東西,可能真的很難。

    就像我將要說的五個比較簡單的函數,但它真的簡單嗎?只有你自己認真去瀏覽一遍才有可能讀懂其中的話意,所有的問題都有一個突破口,當我們找到時,問題的簡單之處油然而生,反之,再簡單的問題都是你心中的永遠揮之不去的陰影。所以說這些函數簡不簡單誰也說不准,就像世間萬物均以相生相克存在着一樣,

     可能有人就會問了:那什么是聚合函數,又該怎么去使用它呢?

     專家解析:一般在做統計分析的時候需要使用聚合函數

    當我們需要計算時,我們首先想到的應該就是Sum() “求總和”、AVG()  ”求平均“、COUNT()  “求總記錄“;那比較的函數就是MAX() "最大值" 和MIN() “最小值”。

     既然我們都知道了它們的作用了,就來看看怎么運用並實現其功能的吧!!!
       01.SUM()函數

          --查詢每個年級的總學時數,並按照升序排列

select gradeid as 年級編號,SUM(classhour) as 總學時數
from Subject
group by gradeid
order by 總學時數 asc


       02.AVG()函數

select AVG(studentresult) as 平均分  from  Result

            --查詢每個參加考試的學員平均分

select studentno as 學號,AVG(studentresult) as 平均分
from Result
group by studentno

           --查詢每門課程的平均分,並按照降序排列

select subjectid as 課程編號,AVG(studentresult) as 平均分
from Result
group by SubjectId
order by 平均分 desc

            
          --查詢每年級學生的平均年齡:

select gradeid as 年級,AVG(DATEDIFF(YY,birthday,getdate())) as 平均年齡
from student
group by GradeId
--查詢參加年級考試的學生中,平均分及格的學生記錄,按照降序排列
select studentno as 學號,avg(StudentResult) as 平均分
from Result
group by StudentNo
having  avg(StudentResult)>60
order by 平均分 desc

       --查詢考試時間為-9-9課程的及格平均分
       --課程編號   所有課程平均分

select subjectid  as 課程編號,AVG(studentresult) as 所有課程平均分
from Result
where ExamDate>='2009-9-9' and ExamDate<'2009-9-10'
group by subjectid
having AVG(StudentResult)>60

 


        03.MAX()函數

select MAX(studentresult) as 最高分 from Result


        04.MIN()函數

  select min(studentresult) as 最高分 from Result

 

        05.COUNT()函數

           COUNT():統計一張表中總共有多少條數據

例如:

          --查詢每年級學時數超過的課程數

select gradeid as 年級編號,COUNT(subjectid) as 課程總數
from Subject
where ClassHour>=50
group by GradeId

         --統計至少有一次不及格的學生學號和次數。

select studentno as 學號,COUNT(studentresult) as 次數
from Result
where StudentResult<60
group by studentno

       --查詢每個年級包含北京的學生總數

select gradeid as 年級,COUNT(studentno) as 總人數
from student
where Address like '%北京%'
group by GradeId

     

最后需要記住五個函數都要遵守的注意事項

       --如果語句中有group by關鍵字,那么select后只能跟group by后出現的列,或者是聚合函數
        --max() min() count(),sum(),avg()

    

       最后,希望我的作品能夠讓您滿意,如有不足之處,請不要吝嗇你的建議,只有這樣我的作品才能令你滿意;因為一次的缺漏永遠會給下一次補充、讓其變得更好

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM