select 统计数量_leetcode题库-sql练习精讲系列--十三、简单分组统计类问题
這是一個(gè)系列文章,這個(gè)系列的理念是通過(guò)一道題,搞懂一類(lèi)題。涵蓋了SQL面試最常考的知識(shí)點(diǎn)。搞懂這些題,面試時(shí)工作中sql不可能有問(wèn)題。
文章分為引入問(wèn)題-完整解析-答案-leetcode題和答案-知識(shí)點(diǎn)拓展-BAT等大廠面試真題幾個(gè)部分。
希望能幫你全方位的弄懂。有問(wèn)題可以留言,碼字不易,寫(xiě)一篇要好幾個(gè)小時(shí),希望能得到點(diǎn)贊收藏哦
一、問(wèn)題-leetcode題庫(kù)-596.超過(guò)5名學(xué)生的課
有一個(gè)學(xué)生選課信息 表 ,有: student (學(xué)生) 和 class (課程)。
請(qǐng)列出所有被學(xué)生選擇超過(guò)或等于5次的課程。
Note:學(xué)生在每個(gè)課中不應(yīng)被重復(fù)計(jì)算。
二、準(zhǔn)備
create table 學(xué)生選課信息表 ( 學(xué)生編號(hào) varchar(20), 選課課程 varchar(20));insert into 學(xué)生選課信息表 values ('01','數(shù)學(xué)'), ('02','英語(yǔ)'), ('03','數(shù)學(xué)'), ('04','地理'), ('05','數(shù)學(xué)'), ('06','計(jì)算機(jī)'), ('07','數(shù)學(xué)'), ('08','數(shù)學(xué)'), ('09','數(shù)學(xué)');三、解答
[解題思路]
1.明確題干要求,找出被選次數(shù)超過(guò)或等于5次的課程。
所以可以按照課程名稱(chēng)分組,首先統(tǒng)計(jì)選每門(mén)課的學(xué)生數(shù)量。
SELECT a.選課課程 FROM(SELECT 選課課程, COUNT(學(xué)生編號(hào)) AS 選課次數(shù)FROM 學(xué)生選課信息表GROUP BY 選課課程) AS a2.按照題干中的提示,學(xué)生在每個(gè)課中不應(yīng)被重復(fù)計(jì)算。所以增加distinct關(guān)鍵字。
選課學(xué)生大于或等于5人,所以篩選條件加上where 選課次數(shù) >= 5.
SELECT a.選課課程 FROM(SELECT 選課課程, COUNT(學(xué)生編號(hào)) AS 選課次數(shù)FROM 學(xué)生選課信息表GROUP BY 選課課程) AS a WHERE 選課次數(shù) >= 5總結(jié)
以上是生活随笔為你收集整理的select 统计数量_leetcode题库-sql练习精讲系列--十三、简单分组统计类问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 教你如何用PS快速抠图:[3]抠出自然头
- 下一篇: 编写一个弹出式菜单的shell程序_分享