mysql 分组查出来横向展示_MySQL汇总分析(group by)
制作表格的代碼在這里找哦!
https://zhuanlan.zhihu.com/p/162696033?zhuanlan.zhihu.comstu表:學生學號、學生姓名、學生年齡、學生性別sc表:學生學號、課程編號、成績co表:課程編號、課程名稱和教師編號te表:教師編號和姓名MySQL使用group by關鍵字對數據進行分組,
通常和集合函數一起使用。
答案及講解
#1.查詢每門課程被選修的學生數 :
SELECT#2.查詢每位同學的平均成績,并按分數降序、學生編號升序排列:
order by排序,默認是升序排列 ASC可以省略。
SELECT#3.查詢每門課程的平均成績,結果按平均成績降序排列,平均成績相同時,按課程編號升序排列:
SELECT#4.查詢90后學生的男女數量,并按照數量降序排列:
SELECT#擴展,想要橫向顯示怎么辦?
橫豎方向互換一般會用sum 或count 加上case ……when 或者if函數,具體怎么做請看
https://zhuanlan.zhihu.com/p/160859939?zhuanlan.zhihu.comSELECT#5.查詢不同性別、各年份的出生人數:
#聚合函數 多變一 #分組聚合 多變少
SELECT#查找重復值
-- group by可以和having一起限定顯示記錄所需滿足的條件,只有滿足條件的分組才會被顯示
#6.查詢同名同姓學生名單,并統計有同名的學生姓名和同名人數:
SELECT#7.查詢每門課程的平均成績,并且平均成績大于等于70分:
SELECT#8.查詢至少選修了2門課的學生學號:
SELECT#9.查詢至少兩門課程及格的學生學號:
SELECT#10.查詢學過編號為“01”并且也學過編號為“02”的課程的學生編號:
SELECT#11.查詢學過編號為“01”但是沒有學過編號為“02”的課程的學生編號:
select還有一種思路:把學過02號課程的學生都排除,再找學過01課程的學生結合兩個條件,就是我們想要的結果
SELECT所有學過02課程的學生學號
SELECT#12.查詢僅學過編號為“01”并且也學過編號為“02”的課程的學生編號:
select#13.查詢各科成績最高分、最低分和平均分:以如下形式顯示:課程ID,最高分,最低分,平均分,及格率;
select親們可以按照這個題目練習一下:
題目:
1.查詢每門課程被選修的學生數 :
2.查詢每位同學的平均成績,并按分數降序、學生編號升序排列:
3.查詢每門課程的平均成績,結果按平均成績降序排列,平均成績相同時,按課程編號升序排列:
4.查詢90后學生的男女數量,并按照數量降序排列:
擴展,想要橫向顯示怎么辦?
5.查詢不同性別、各年份的出生人數:
6.查詢同名同姓學生名單,并統計有同名的學生姓名和同名人數:
7.查詢每門課程的平均成績,并且平均成績大于等于70分:
8.查詢至少選修了2門課的學生學號:
9.查詢至少兩門課程及格的學生學號:
10.查詢學過編號為“01”并且也學過編號為“02”的課程的學生編號:
11.查詢學過編號為“01”但是沒有學過編號為“02”的課程的學生編號:
12.查詢僅學過編號為“01”并且也學過編號為“02”的課程的學生編號:
13.查詢各科成績最高分、最低分和平均分:以如下形式顯示:課程ID,最高分,最低分,平均分,及格率
總結
以上是生活随笔為你收集整理的mysql 分组查出来横向展示_MySQL汇总分析(group by)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编程方法学8:信息隐藏
- 下一篇: 编程方法学9:字符串