sql 基礎入門50題
1.選擇分數介於85-100,70-85,60-70,0-60分數段之間的人數,課程標號,課程名稱和所佔百分比
select
distinct f.c_name,a.c_id,b.`85
-100
`,b.百分比,c.`70
-85`,c.百分比,
from score a
left
join
(select c_id,
sum(
case
when s_score >
85and s_score <=
100then
1else
0end)as
`85-100`,
round
(100*(
sum(
case
when s_score >
85and s_score <=
100then
1else
0end)/
count(*
)),2
)as 百分比
from score group
by c_id)b on a.c_id=b.c_id
left
join
(select c_id,
sum(
case
when s_score >
70and s_score <=
85then
1else
0end)as
`70-85
`,round
(100*(
sum(
case
when s_score >
70and s_score <=
85then
1else
0end)/
count(*
)),2
)as 百分比
from score group
by c_id)c on a.c_id=c.c_id
left
join course d on d.c_id = a.c_id ;
思路:
分段考慮,肯定是選擇score 表操作,先確定在85-100分數之間的人數以及全分數段的人數,總的人數用count 函式,通過對c_id 分組(group by c_id)
因為要求課程標號和課程名所以肯定需要course 表和score 表的連線
其他分數段的類似上邊。
注意點: distinct 的必要性
--85-100分數段之間的人數,注意的點:重新命名的符號是 **``**
sum(
case
when s_score>
85and s_score<
100then
1else
0end)`
85-100`
-- 該分段總的**
select c_id,
sum(
case
when s_score>
85and s_score<
100then
1else
0end)as
`85-100`,
round
(100*(
sum(
case
when s_score>
85and s_score<
100then
1else
0end))
/count(*
),2)
as 百分比 from score group
by c_id
– 2查詢所有課程的成績第2名到第3名的學生資訊及該課程成績
注意點:按照課程號的不同分成三個部分,但是寫**時代表排名的引數需要更改(@i:=@i+1,@k:=@k+1),不然只能執行第一段**
第乙個select 選擇的score表已經可以顯示課程成績,所以再關聯乙個student表展示學生資訊即可
select b.s_name, s.s_score,s.c_id from student b ,
(select c_id , s_score, s_id,
@i:=@i+
1as rank from score ,
(select
@i:=
0)p where c_id=
'01'
)swhere b.s_id =s.s_id and s.rank between
2and
3union
select b.s_name, s.s_score,s.c_id from student b ,
(select c_id , s_score, s_id,
@j:=@j+
1as rank from score ,
(select
@j:=
0)p where c_id=
'02'
)swhere b.s_id =s.s_id and s.rank between
2and
3union
select b.s_name, s.s_score,s.c_id from student b ,
(select c_id , s_score, s_id,
@k:=@k+
1as rank from score ,
(select
@k:=
0)p where c_id=
'03'
)swhere b.s_id =s.s_id and s.rank between
2and
3
練習題 基礎練習
第一題 需求 1 計算 5 個月的生活大概開銷 spending 比如 rent 房租 800.00 mealcost 吃飯 900.00 clothingcosts 買衣服 300.00 othercosts 其他費用 300.00 public class dome1 第二題 需求 2 計算 1...
SQL趣味練習題
第一中情況 create table renwu name varchar 20 not null,fahter varchar 20 insert into renwu values 小甲 大甲 insert into renwu values 大甲 老甲 insert into renwu na...
前端基礎練習題
1.js裡面操作屬性的方式有哪些?分別有什麼特點?可以操作js中承認的屬性。不能獲取行間的自定義屬性。可以新增屬性,但是行間看不到。可以操作變數。不能獲取行間自定義屬性。可以新增屬性,但是行間看不到。getattrbute setattrbute removeattrbute可以獲取 設定 移除行間...