1. 程式人生 > >【2019春招準備:17.sql】

【2019春招準備:17.sql】

序號 考點 連結 備註(公司、年份)
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