7.排序、聚合函数、分组查询
排序
語法:
select * from 表名
order by 列1 asc|desc,列2 asc|desc,...
asc從小到大排列,即升序,也可不寫;
desc從大到小排序,即降序
例1:查詢未刪除男生信息,按學號降序
select * from students
where gender=1 and isdelete=0
order by id desc;
?
?
聚合函數
count(*)表示計算總行數,括號中寫星與列名,結果是相同的
聚合函數不能在 where 中使用
例1:查詢學生總數
select count(*) from students;
max(列)表示求此列的最大值
例2:查詢女生的編號最大值
select max(id) from students where gender=0;
min(列)表示求此列的最小值
例3:查詢未刪除的學生最小編號
select min(id) from students where isdelete=0;
sum(列)表示求此列的和
例4:查詢男生的編號之和
select sum(id) from students where gender=1;
avg(列)表示求此列的平均值
例5:查詢未刪除女生的編號平均值
select avg(id) fromstudents where isdelete=0 and gender=0;
?
分組
按照字段分組,表示此字段相同的數據會被放到一個組中
語法:
select 列1,列2,聚合... from 表名 group by 列1,列2...
例1:查詢男女生總數
select gender as 性別,count(*)
from students
group by gender;
例2:查詢各種年齡的人數
select age as 年齡,count(*) as 數量from students group by age;
分組后的數據篩選
語法:
select 列1,列2,聚合... from 表名
group by 列1,列2,列3...
having 列1,...聚合...
having后面的條件運算符與where的相同
例3:查詢男生總人數
方案一
select count(*)
from students
where gender=1;
-----------------------------------
方案二:
select gender as 性別,count(*)
from students
group by gender
having gender=1;
對比where與having
- where是對from后面指定的表進行數據篩選,屬于對原始數據的篩選
- having是對group by的結果進行篩選
?
總結
以上是生活随笔為你收集整理的7.排序、聚合函数、分组查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python——import导入模
- 下一篇: 机器学习:Scikit-learn与特征