2022-09-08 分組函數 1、按照某個欄位分組並查詢(group by) 以"students"表(id,name,age,gender,is_del,height)為例: select gender from students group by gender; 說明:格式:select 欄位 ...
2022-09-08
分組函數
1、按照某個欄位分組並查詢(group by)
以"students"表(id,name,age,gender,is_del,height)為例:
select gender from students group by gender;
說明:格式:select 欄位名 from 表名 group by 要分組的欄位名;
2、一張表中,按照某個欄位分組後,查詢某個欄位分組後值的集合(group_concat)
以"students"表為例:
select gender,group_concat(name) from students group by gender;
說明:select 某個欄位名1,grouP_concat(要以集合分佈的欄位名) from 表名 group by 某個欄位名1;
結果圖如下:
3、對分組數據進行過濾(having)
以"students"表為例:
select gender,count(*) from students group by gender having count(*) > 3;
查詢分組中數量大於3的gender 中的屬性以及統計它的人數。
4、對分組數據中的聚合函數進行彙總(with rollup)
以"students"表為例:
select gender,count(*) from students group by gender with rollup;
查詢某個欄位中,分組數據的個數統計。除此之外,結果表中還有NULL屬性的統計,它的值是分組數據中總的數據的個數之和。
結果表如下:
--------------------------------------------------------
內連接(inner join ):
指的是兩個表中符合條件的共有數據。即兩個表的交集部分。
5、使用內連接查詢兩個表的聯繫情況:
前提:
例如:現創建了兩個表。
表1 students(id,name,age,gender,id_del,height,c_id,); 表2 classes(id,name)。
select s.name,c.name from students s inner join classes c on s.c_id = c.id;
說明:students s 和 classes c 表示的是給某個表起一個別名,其中起別名的關鍵字as可以省略。
格式:select 表名.欄位名(結果圖中要列出的內容)from 表名1 表1別名 inner join 表名2 表2別名 on 連接約束條件(表1.欄位名 = 表2.欄位名);