1樓:匿名使用者
假設有學生表(student),課程表(course),學生課程關聯表(stu_cou);
學生的學號為student表的主鍵,那麼:
select sno from stu_cou group by sno having count(**o) > 3;
資料庫查詢至少選修了3門課程的所有學生辦法
2樓:度媽真偉大
select * from 學生表
where (select count(distinct 課程號) from 選修表 where 學號 = 學生表.學號) >= 3 或者 select * from 學生表 group by 學號 having count(課程號) >= 3 前邊是子查詢,後邊用分組加條件的方式
用sql語句查詢選修了3門及以上課程的學生學號,姓名,選修的課程數
3樓:愛濤
select學號from選課表groupby學號havingcount(*)>=3
【拓展】
sql即結構化查詢語言(structured query language),是一種特殊目的的程式語言,是一種資料庫查詢和程式語言,用於訪問資料以及查詢、更新和管理關係資料庫系統;同時也是資料庫指令碼檔案的副檔名。
sql語句無論是種類還是數量都是繁多的,很多語句也是經常要用到的,sql查詢語句就是乙個典型的例子,無論是高階查詢還是低階查詢,sql查詢語句的需求是最頻繁的。
基本語句 資料記錄篩選:
sql="select * from 資料表 where欄位名=字段值 order by欄位名[desc]"(按某個字段值降序排列。預設公升序asc)
sql="select * from 資料表 where欄位名like '%字段值%' order by 欄位名 [desc]"
sql="select top 10 * from 資料表 where欄位名=字段值 order by 欄位名 [desc]"
sql="select top 10 * from 資料表 order by 欄位名 [desc]"
sql="select * from 資料表 where欄位名in ('值1','值2','值3')"
sql="select * from 資料表 where欄位名between 值1 and 值2"
4樓:匿名使用者
沒人回答你啊:(
select s.sno
,s.name
,sc.num as [選修課程數]
from student s
join (--查詢選修3門以上的學生
select sno
,count(*) as num
from sc
group by sno -- 按學生
分組having count(*) >= 3 -- 超過3門) sc on sc.sno = s.no
5樓:sggnht寒澤
select sno,count(*)as 選課門數from score
group by sno
having count(*)>=3
查詢選修了3門以上課程的學生學號;; 5
6樓:匿名使用者
其實是可以的,只是教科書的不完整而已
select sno
from sc
group by sno
having count(*)>3
*表示對任意列的統計,然後如果填寫特定列比如 count(**o)則不會計算該列含有null的記錄
比如:**o12
null
count(*)的結果為3 count(**o)的結果為2
7樓:匿名使用者
use student
goselect xs_kc.*
from 班級號
where 學號 in (
select 學號
from 班級號
group by 學號
having count(*) >=3)
看看對不
打字不易,如滿意,望採納。
sql查詢至少選了學生200215122選修的全部課程的學生號碼 5
8樓:hx何旭
好像是把 as 省略了 本來是
select distinct sno
from sc as scx
9樓:匿名使用者
別名,你還沒學好資料庫的基礎。sno是學號,sc是學生成績表。
資料庫問題 查詢至少選修了三門課程的學生編號和姓名。
10樓:匿名使用者
group by 分組依據的屬性至少要有乙個是查詢表裡的,即是上一行select from後面那個表要有的
查詢所有至少選修2門課程的學生的學號的語句怎麼寫?
11樓:匿名使用者
select sno(學生的學號) from sc(學生選課表)
group by sno having count(*)>1
12樓:匿名使用者
select sno from sc group by sno having count(**o)>=2
13樓:princess熱熱
比如選修課表2列: 學號, 選修課程
select 學號,
count(選修課程)
from 選修課
having count(選修課程) >= 2group by 學號
14樓:匿名使用者
⑥ select distinct x.s#
from sc as x, sc as y
where x.s#=y.s# and x.c#!=y.c#;
15樓:匿名使用者
selece 學號 from 表 條件(選修課程大於或等於2的不就行了麼)
16樓:匿名使用者
select 學號
from 選課表
group by 學號
having count(學號)>=2
要查詢選修了所有課程的學生資訊,怎樣用sql實現
17樓:匿名使用者
--用乙個簡單邏輯
select sno
from courseselection
group by sno
having count(*) = (select count(*) from course) -- 選課數內 = 課程總數容
18樓:闕黴錘
第一問:兩個復not exists表示雙制重否定:沒有乙個選了課的學生沒有選course表裡的課程
select sname
from student
where not exists /*沒有乙個學生滿足以下條件*/
(select * from course
where not exists /*什麼條件呢?沒有選過course表裡的課*/
(select * from sc
where sno =student.sno /*這裡兩個=分別指對應的關係,表示選過課並且是course裡and **o=course.**o) 的課,只不過用not exists否定掉了*/
第二問:其實和not in 是乙個意思 exists只返回true 或false 這裡not exists裡的內容 其實就是指學生選過的課程,再用not exists否定了,就變成了沒有選的
用sql語句查詢至少選修了學生『張徵』選修的全部課程的學生的姓名和學號,**如圖,結果求圖,要驗證
19樓:匿名使用者
select s.sno,s.sname from(select sno, count(**o) as num from sc where **o in (
select **o from s join sc on s.sno = sc.sno and sname ='張徵'
)group by sno
) t2
join(select count(**o) num from s join sc on s.sno = sc.sno and sname ='張徵' ) t1 on t2.
num = t1.num
join s on s.sno = t2.sno已驗證過
20樓:唐城冬
你也太會玩了吧,讓人橫著看啊
檢索出選修課程至少等於三門的學生學號和選課門數
學生表s 學號s 姓名sname,性別 年齡age 課程表c 課程號c 課程名 ame 成績表sc 學號s 課程號c 分數grade select s.s count c as 選課門數 from s,sc where s.s sc.s group by s.s having count c 3,我...
SQL查詢全部學生都選修的課程的課程號和課程名問題
首先,簡單的把課程表與選修表關聯,course join study on course.cid study.cid 然後 按照課程號和課程名分組,group by course.cid,course.ame 最後,要求 選修的人數 學生總數 having count study.sid selec...
sql求解1查詢選修了軟體工程課程學生的學號
我汗,你連個表結構都沒有,讓人怎麼回答。其實我很好奇 前兩個問題是啥 lz沒貼出來 憂固畢應券娛恆了夜爪 創屑腥迫爹床盲都唯勸 資料庫sql語句中 查詢選修了全部課程的學生的學號和姓名 理解 首先頭腦中有三點概念 1 exists 子查詢找到的 提交not exists 子查詢中 找不到的提交 說明...