![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Sql
比例蓝天
这个作者很懒,什么都没留下…
展开
-
真题
牛客网,网易校招select Snamefrom Swhere SNo not in(select SNOfrom SCwhere cno not in(select cnofrom CwhereCTEACHER==‘小易’))select sname,ave(sum(score))from Sjoin SCon S.SNO=SC.SNO...原创 2020-03-23 20:16:09 · 192 阅读 · 0 评论 -
连续id比较另一个项目
select distinct s1.id,s1.visit_date,s1.peoplefrom stadium s1,stadium s2,stadium s3where s1.people>=100 and s2.people>=100 and s3.people>=100and(s1.id = s2.id+1 and s2.id = s3.id+1 or ...原创 2020-03-22 17:37:59 · 118 阅读 · 0 评论 -
round函数
select Trips.Request_at as Day, round(sum(if(Trips.Status='completed',0,1))/count(Trips.Status),2) as 'Cancellation Rate'from Trips join Userson Trips.Client_Id=Users.Users...原创 2020-03-22 15:48:56 · 279 阅读 · 0 评论 -
窗口函数
窗口函数简介原创 2020-03-20 21:52:51 · 87 阅读 · 0 评论 -
表的连接与项目的比较
```sqlselect Department.name as Department,Employee.name as Employee,Salaryfrom Employeejoin Departmenton Employee.DepartmentId=Department.Id where(DepartmentId,Salary)in( select Departmen...原创 2020-03-20 21:39:46 · 87 阅读 · 0 评论 -
SQL limit offset 排序问题
① select * from table limit 2,1;//含义是跳过2条取出1条数据,limit后面是从第2条开始读,读取1条信息,即读取第3条数据② select * from table limit 2 offset 1;//含义是从第1条(不包括)数据开始取出2条数据,limit后面跟的是2条数据,offset后面是从第1条开始读取,即读取第2,3条selectIFNUL...原创 2020-03-14 15:42:45 · 712 阅读 · 0 评论 -
SQL时间差函数
DATEDIFF() 函数返回两个日期之间的时间。DATEDIFF(datepart,startdate,enddate)例SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate当查询日期差为1的销量id时,可以用select *from 日销 as a cross join 日销 as b on datediff...原创 2020-03-16 12:01:56 · 1084 阅读 · 0 评论 -
表内部的比较
基于一个列表内部的比较,通常使用join on 连接的方式进行比较得到结果例:给定 Employee 表,编写一个 SQL 查询,该查询可以获取收入超过他们经理的员工的姓名。在上面的表格中,Joe 是唯一一个收入超过他的经理的员工。select E1.name as Employeefrom Employee E1join Employee E2on E2.Id=E1.Manag...原创 2020-03-16 12:02:45 · 157 阅读 · 0 评论 -
Group by和Having的使用
对于需要寻找某个值的出现次数,可以使用查询出现重复次数,并返回该Emailselect distinct Emailfrom Personwhere Emailin(select Emailfrom Persongroup by Emailhaving count(Email)>1)也可以采用临时表的方式:优先顺序where>group by>hav...原创 2020-03-16 15:34:14 · 417 阅读 · 0 评论 -
删除
编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。delete p1from Person as p1, Person as p2wherep1.Email=p2.Email and p1.Id>p2.Id; ...原创 2020-03-16 17:04:25 · 183 阅读 · 0 评论 -
连接-表
select Customers.name as customersfrom Customersleft join Orderson Customers.Id=Orders.CustomerIdwhere Orders.CustomerId is null原创 2020-03-16 17:26:58 · 127 阅读 · 0 评论 -
排序
select *from cinemawhere cinema.description!='boring' and cinema.id%2!=0 order by cinema.rating desc奇数表示:mod(id,2)=1不等于表示:<>升序:order by rating asc降序:order by rating desc...原创 2020-03-17 15:09:46 · 83 阅读 · 0 评论 -
交换
update salaryset sex= case sex when 'f' then 'm' else 'f'endupdate salaryset sex=if(sex='f','m','f')原创 2020-03-17 15:34:16 · 125 阅读 · 0 评论 -
将表格式化
select id,max(case month when 'Jan' then revenue end) Jan_Revenue,max(case month when 'Feb' then revenue end) Feb_Revenue,max(case month when 'Mar' then revenue end) Mar_Revenue,max(case month...原创 2020-03-17 16:51:55 · 94 阅读 · 0 评论 -
新增一列排序
select s1.Score,count(distinct(s2.Score)) as rankfrom Scores s1,Scores s2where s1.Score<=s2.Scoregroup by s1.Id order by rankcount(distinct(s2.Score)) as rank统计S2表符合条件的不重复的分数的数量作为排名group by ...原创 2020-03-19 10:37:36 · 120 阅读 · 0 评论