1. 程式人生 > >MySQL 學習總結-聚合函式總結

MySQL 學習總結-聚合函式總結

常用的聚合函式

  • group by 欄位 :
    按欄位將記錄分組,通常和其它的函式聯合使用,group by 操作後,返回每一組的第一條記錄

  • order by:根據指定欄位進行排序,預設升序(asc)排序,可以指定多個排序欄位,按照欄位先後分別排序。
    ps:漢字拼音排序 GBK編碼可以直接按拼音排序,UTF-8需要轉GBK再排

--例子: 查詢全體學生的情況,查詢結果按所在系升序排列,對同一系中的學生按年齡降序排列。
SELECT * FROM student ORDER BY convert(系名 using gbk)  ASC,年齡 DESC
  • sum(expr):求和
-- 一個可以記住的例子
-- 查詢存在兩門(包含兩門)以上課程不及格的學生的平均分 -- sum實現 SELECT name,平均分 from ( SELECT name,avg(score) 平均分, sum(score<60) 掛科數目 FROM stu GROUP BY name HAVING 掛科數目>=2) tt;
  • avg(expr):求平均數

  • count(expr):計數器,返回SELECT語句檢索到的行中非NULL值的數目
    count(NULL) 結果為0,count(*)可以避免檢索到NULL值得情況

-- 另一個可以記住的例子,題目跟sum例子相同
-- 查詢存在兩門(包含兩門)以上課程不及格的學生的平均分
-- count實現 SELECT name,avg(score) 平均分 FROM stu WHERE ( SELECT COUNT(score) FROM stu stu2 WHERE stu.name=stu2.name and stu2.score<60 )>=2 GROUP BY stu.name
  • max(expr) 獲取最大值

  • min(expr) 獲取最小值

  • GROUP_CONCAT(expr):按照分組,將expr字串按逗號分隔,組合起來

SELECT name, GROUP_CONCAT(score)FROM stu GROUP
BY name;

結果截圖:
這裡寫圖片描述