【2019春招準備:17.sql】
阿新 • • 發佈:2018-12-30
序號 | 考點 | 連結 | 備註(公司、年份) |
---|---|---|---|
0 | 學生成績基本案例 | 見下 | 基本操作 |
1 | 查詢某使用者最近的10條交易記錄 | 見下 | 招銀java1面 |
0. 學生成績基本案例
create table stusco (sno int not null,grade int,check (grade>0 and grade<100) );
show tables;
desc stusco;
#新增主鍵的設定
ALTER TABLE `zzb_test`.`stusco` ADD PRIMARY KEY (`sno`);
insert into stusco (sno,grade) values(1,65);
insert into stusco (sno,grade) values(2,69);
insert into stusco (sno,grade) values(3,41);
insert into stusco (sno,grade) values(5,99);
insert into stusco (sno,grade) values(7,82);
insert into stusco (sno,grade) values(8,70);
insert into stusco (sno,grade) values(10,75);
insert into stusco (sno,grade) values(12,60);
insert into stusco (sno,grade) values(15,79);
insert into stusco (sno,grade) values(22,86);
insert into stusco (sno,grade) values(245,98);
insert into stusco (sno,grade) values (234,92);
insert into stusco (sno,grade) values(113,55);
insert into stusco (sno,grade) values(199,68);
insert into stusco (sno,grade) values(198,77);
insert into stusco (sno,grade) values(236,82);
insert into stusco (sno,grade) values(240,67);
insert into stusco (sno,grade) values(98,72);
insert into stusco (sno,grade) values(137,66);
insert into stusco (sno,grade) values(145,73);
update stusco set grade=95 where sno=5;
# 求學號1,3,5,7,8,10,12,22的學生的成績
select sno as 學生學號,grade as 學生成績 from stusco where sno in (1,3,5,7,8,10,12,22);
# 求比上述同學成績都高的同學學號
select sno from stusco where grade > (select max(grade) from stusco where sno in (1,3,5,7,8,10,12,22));
# 查詢成績評級(分段)
select ss.sno,
(case
when ss.grade is null then '缺考'
when ss.grade <60 then '不及格'
when ss.grade >=60 and ss.grade< 70 then '及格'
when ss.grade >=70 and ss.grade<80 then '中'
when ss.grade >=80 and ss.grade<90 then '良'
when ss.grade >=90 and ss.grade <100 then '優'
else '什麼鬼分數?'
end
)qualification
from stusco ss;
# 統計各個分數段的人數
select
(case
when ss.grade is null then '缺考'
when ss.grade <60 then '不及格'
when ss.grade >=60 and ss.grade< 70 then '及格'
when ss.grade >=70 and ss.grade<80 then '中'
when ss.grade >=80 and ss.grade<90 then '良'
when ss.grade >=90 and ss.grade <100 then '優'
else '什麼鬼分數?'
end
)qualification
,count(ss.sno) as stuNum from stusco ss
group by
case
when ss.grade is null then '缺考'
when ss.grade <60 then '不及格'
when ss.grade >=60 and ss.grade< 70 then '及格'
when ss.grade >=70 and ss.grade<80 then '中'
when ss.grade >=80 and ss.grade<90 then '良'
when ss.grade >=90 and ss.grade <100 then '優'
else '什麼鬼分數?'
end;
# 把學生按照上述的升級評定進行排序,小組內按照學號進行排序
select ss.sno
from stusco ss order by ss.sno;
group by
case
when ss.grade is null then '缺考'
when ss.grade <60 then '不及格'
when ss.grade >=60 and ss.grade< 70 then '及格'
when ss.grade >=70 and ss.grade<80 then '中'
when ss.grade >=80 and ss.grade<90 then '良'
when ss.grade >=90 and ss.grade <100 then '優'
else '什麼鬼分數?'
end as qualification;
1.查詢某使用者最近的10條交易記錄
with Sold as (
select row_number() over(partition by 編號 order by 銷售時間 desc) rn , * from Sold
)
select * from Sold where rn <= 10