當走在嘈雜的城市中時,什么能讓我們變得冷靜呢?心聲向我述說了一些,“簡單”不一定就真的簡單,它是相對的,當我們長大了,想要保持兒時的單純,我想只能在夢中由心所發了,因為現實讓我們都變了,要想重新找回曾經的東西,可能真的很難。
就像我將要說的五個比較簡單的函數,但它真的簡單嗎?只有你自己認真去瀏覽一遍才有可能讀懂其中的話意,所有的問題都有一個突破口,當我們找到時,問題的簡單之處油然而生,反之,再簡單的問題都是你心中的永遠揮之不去的陰影。所以說這些函數簡不簡單誰也說不准,就像世間萬物均以相生相克存在着一樣,
可能有人就會問了:那什么是聚合函數,又該怎么去使用它呢?
專家解析:一般在做統計分析的時候需要使用聚合函數
當我們需要計算時,我們首先想到的應該就是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()
最后,希望我的作品能夠讓您滿意,如有不足之處,請不要吝嗇你的建議,只有這樣我的作品才能令你滿意;因為一次的缺漏永遠會給下一次補充、讓其變得更好。
