mysql:group by,order by mysql:group by,order by

mysql:group by,order by

order by

order by是用於支持字段的關鍵字

表結構如下

select * from table_a;
+----------+-------+
| name     | score |
+----------+-------+
| zhangsan |    10 |
| lisi     |    70 |
| wangwu   |    70 |
| zhangsan |    50 |
+----------+-------+

默認生序

select * from table_a order by score;
+----------+-------+
| name     | score |
+----------+-------+
| zhangsan |    10 |
| zhangsan |    50 |
| lisi     |    70 |
| wangwu   |    70 |
+----------+-------+

order by默認以升序進行排列

降序排列

select * from table_a order by score desc;
+----------+-------+
| name     | score |
+----------+-------+
| lisi     |    70 |
| wangwu   |    70 |
| zhangsan |    50 |
| zhangsan |    10 |
+----------+-------+

多重排序

select * from table_a order by score desc,name desc;
+----------+-------+
| name     | score |
+----------+-------+
| wangwu   |    70 |
| lisi     |    70 |
| zhangsan |    50 |
| zhangsan |    10 |
+----------+-------+

mysql對於多重排序的處理是從左到右,也就是說先根據條件1進行排序、出現了相同的情況再去執行條件2進行排序

group by

group by主要是對結果集進行分組,在這個基礎上進行聚合運算

表結構如下

select * from table_a;
+----------+-------+
| name     | score |
+----------+-------+
| zhangsan |    10 |
| lisi     |    70 |
| wangwu   |    70 |
| zhangsan |    50 |
| wangwu   |    20 |
+----------+-------+

分組

select name from table_a group by name;
+----------+
| name     |
+----------+
| zhangsan |
| lisi     |
| wangwu   |
+----------+

在進行group進行分組時,只能顯示用於分組的字段

聚合運算

count

select name,count(*) from table_a group by name;
+----------+----------+
| name     | count(*) |
+----------+----------+
| zhangsan |        2 |
| lisi     |        1 |
| wangwu   |        2 |
+----------+----------+

計算出每個分組的個數

sum

select name,sum(score) from table_a group by name;
+----------+------------+
| name     | sum(score) |
+----------+------------+
| zhangsan |         60 |
| lisi     |         70 |
| wangwu   |         90 |
+----------+------------+

對每個分組中數據的sum字段進行求和

avg

select name,avg(score) from table_a group by name;
+----------+------------+
| name     | avg(score) |
+----------+------------+
| zhangsan |    30.0000 |
| lisi     |    70.0000 |
| wangwu   |    45.0000 |
+----------+------------+

對每個分組中數據的avg字段進行求平均數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章