sql 取一个月日期去掉周末的所有日期_LeetCode:SQL
一、简单
175.组合两个表
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
select FirstName, LastName, City, State
from Person p
left join Address a on p.PersonId = a.PersonId;
176.第二高薪水
编写一个 SQL 查询,获取Employee
表中第二高的薪水(Salary) 。
例如上述 Employee
表,SQL查询应该返回 200
作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回null
。
select max(Salary) as SecondHighestSalary
from Employee
where Salary < (select max(Salary) from Employee);
181.超过经理收入的员工
Employee
表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。
给定 Employee
表,编写一个 SQL 查询,该查询可以获取收入超过他们经理的员工的姓名。在上面的表格中,Joe 是唯一一个收入超过他的经理的员工。
select a.Name as Employee
from Employee a, Employee b
where a.ManagerId = b.Id and a.Salary > b.Salary;
182.查找重复的电子邮箱
编写一个 SQL 查询,查找 Person
表中所有重复的电子邮箱。
根据以上输入,你的查询应返回以下结果:
select c.Email as Email
from
(select Email, count(Email) as co_email from Person group by Email) c
where c.co_email > 1;
183.从不订购的客户
某网站包含两个表,Customers
表和 Orders
表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。
Customers
表:
Orders
表:
例如给定上述表格,你的查询应返回:
select name as Customers
from(select c.Name as name, o.Id as OrderId from Customers c left join Orders o on c.Id = o.CustomerId) co
where OrderId is null;
196.删除重复的电子邮箱
编写一个 SQL 查询,来删除 Person
表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。
例如,在运行你的查询语句之后,上面的Person
表应返回以下几行:
DELETE p1
FROM Person p1,Person p2
WHEREp1.Email = p2.Email AND p1.Id > p2.Id;
197.上升的温度
给定一个Weather
表,编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 Id。
例如,根据上述给定的Weather
表格,返回如下 Id:
(1)TO_DAYS函数,用来将日期换算成天数
select w1.Id
from Weather w1, Weather w2
where w1.Temperature > w2.Temperature and TO_DAYS(w1.RecordDate) = TO_DAYS(w2.RecordDate) + 1;
(2)DataDiff函数计算两个日期的差值
select w1.Id
from Weather w1, Weather w2
where w1.Temperature > w2.Temperature and datediff(w1.RecordDate,w2.RecordDate) = 1;
(3)SUBDATE函数,实现日期减一
select w1.Id
from Weather w1, Weather w2
where w1.Temperature > w2.Temperature and subdate(w1.RecordDate,1) = w2.RecordDate;
596.超过5名学生的课
有一个courses
表 ,有: student (学生) 和 class (课程)。
请列出所有超过或等于5名学生的课。
例如,表:
应该输出:
Note:
学生在每个课中不应被重复计算。
select class
from(select class, count(distinct student) as numfrom coursesgroup by class) as c
where num >= 5;
620.有趣的电影
某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个 LED显示板做电影推荐,上面公布着影评和相关电影描述。
作为该电影院的信息部主管,您需要编写一个 SQL查询,找出所有影片描述为非 boring (不无聊) 的并且 id 为奇数 的影片,结果请按等级 rating 排列。
例如,下表 cinema:
对于上面的例子,则正确的输出是为:
select id, movie, description, rating
from cinema
where id%2 = 1 and description != 'boring'
order by rating desc;
627.交换工资
给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。
注意,您必只能写一个 Update 语句,请不要编写任何 Select 语句。
例如:
运行你所编写的更新语句之后,将会得到以下表:
UPDATE salary
SETsex = CASE sexWHEN 'm' THEN 'f'ELSE 'm'END;
1179.重新格式化部门表
部门表 Department
:
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| id | int |
| revenue | int |
| month | varchar |
+---------------+---------+
(id, month) 是表的联合主键。
这个表格有关于每个部门每月收入的信息。
月份(month)可以取下列值 ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]。
编写一个 SQL 查询来重新格式化表,使得新的表中有一个部门 id 列和一些对应 每个月 的收入(revenue)列。
查询结果格式如下面的示例所示:
Department 表:
+------+---------+-------+
| id | revenue | month |
+------+---------+-------+
| 1 | 8000 | Jan |
| 2 | 9000 | Jan |
| 3 | 10000 | Feb |
| 1 | 7000 | Feb |
| 1 | 6000 | Mar |
+------+---------+-------+
查询得到的结果表:
+------+-------------+-------------+-------------+-----+-------------+
| id | Jan_Revenue | Feb_Revenue | Mar_Revenue | ... | Dec_Revenue |
+------+-------------+-------------+-------------+-----+-------------+
| 1 | 8000 | 7000 | 6000 | ... | null |
| 2 | 9000 | null | null | ... | null |
| 3 | null | 10000 | null | ... | null |
+------+-------------+-------------+-------------+-----+-------------+
SELECT id,SUM(CASE month WHEN 'Jan' THEN revenue ELSE null END) AS 'Jan_Revenue',SUM(CASE month WHEN 'Feb' THEN revenue ELSE null END) AS 'Feb_Revenue',SUM(CASE month WHEN 'Mar' THEN revenue ELSE null END) AS 'Mar_Revenue',SUM(CASE month WHEN 'Apr' THEN revenue ELSE null END) AS 'Apr_Revenue',SUM(CASE month WHEN 'May' THEN revenue ELSE null END) AS 'May_Revenue',SUM(CASE month WHEN 'Jun' THEN revenue ELSE null END) AS 'Jun_Revenue',SUM(CASE month WHEN 'Jul' THEN revenue ELSE null END) AS 'Jul_Revenue',SUM(CASE month WHEN 'Aug' THEN revenue ELSE null END) AS 'Aug_Revenue',SUM(CASE month WHEN 'Sep' THEN revenue ELSE null END) AS 'Sep_Revenue',SUM(CASE month WHEN 'Oct' THEN revenue ELSE null END) AS 'Oct_Revenue',SUM(CASE month WHEN 'Nov' THEN revenue ELSE null END) AS 'Nov_Revenue',SUM(CASE month WHEN 'Dec' THEN revenue ELSE null END) AS 'Dec_Revenue'
FROM Department
GROUP BY id;
sql 取一个月日期去掉周末的所有日期_LeetCode:SQL相关推荐
- sql 查询一个月的数据按天显示_数据分析-sql复杂查询
视图 在数据库里面有很多表,表里面存放着实际数据.而视图里存放的是sql查询语句 -如何创建视图 create view 按性别汇总(性别,人数) as select 性别,count(*) from ...
- SQL中取一个月的数据的处理方式
前提: 场景设置:表T,其中有属性date表示表中数据的更新时间. 问题:取一个月的数据:2015 年1月的数据. 取前一个月的数,当前月份未知. 一,取一个月的数据 对于知道确定月份的需求,SQL处 ...
- Oracle获取一周前,一个月前,一年前的日期,一个月的总天数、一个月的全部日期
目的:Oracle获取一周前,一个月前,一年前的日期,一个月的总天数.一个月的全部日期 1.获取10分钟前的日期 select sysdate,sysdate-interval '10' minute ...
- Oracle获取一周前,一个月前,一年前的日期
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits ...
- sql上一个月和下一个月
select sysdate-1 昨日,sysdate 今日,sysdate+1 明日 from dual; select sysdate,sysdate- interval '1' month f ...
- oracle获取当前年上一年时间,Oracle获取一周前,一个月前,一年前的日期
1.获取当前时间一周前的日期 select sysdate - interval '7' day from dual 类似的 当前时间减去7分钟的时间 select sysdate,sysdate - ...
- 使用SQL统计一个月每天数据
1.查某个月每天的数据 a.查询某个月每天的日期 SELECT DATE_ADD(DATE_ADD(DATE_ADD(LAST_DAY(STR_TO_DATE('2021-09-06', " ...
- Hive-SQL取一个月用户留存率、留存用户数
一.最基础版-次日留存率 代码如下: select date,count(*)/count(B.user_id) as rate from (selectuser_id,datefrom app_la ...
- 【SQL取数练习,入门篇】牛客网SQL入门板块个人练习,含sql文件,复习必备
文章目录 数据表介绍1: 练习1:入门(简单) 数据表介绍2: 练习2:入门(基础) 入门(文本) 数据表介绍1: 用户信息表:user_profile 其中device_id指终端编号(每个用户有唯 ...
- js获取上一个月、下一个月
/*** 获取上一个月** @date 格式为yyyy-mm-dd的日期,如:2014-01-25*/function getPreMonth(date) {var arr = date.split( ...
最新文章
- oracle 查询、创建、删除 数据库用户
- [BizTalk] 短消息处理流程
- python turtle画椭圆-【python turtle如何画椭圆】
- Android-获取窗口的宽度与高度
- CentOS7 安装 Gitlab
- 推荐搜索炼丹笔记:双塔模型在Airbnb搜索排名中的应用
- 每个人都有一条属于自己的路,既然来了这个世间,就好好的修炼好就行了!无须担忧...
- html vue分页,Vue.js bootstrap前端实现分页和排序
- 一步步编写操作系统 61 任务状态段 TSS
- 为什么git的“ pull request”不称为“ push request”?
- 论文阅读笔记(二)——Xception
- 常见职位的英文简称_英语面试常见的50大问题及应对技巧
- java程序如何提取数据库json格式_java解析json格式文件,再保存在数据库怎么做?...
- 【Java就业培训教程】——单态设计模式
- 3d打印切片软件 linux,3D打印切片软件汇总分类
- 信息技术测试计算机疑难问题处理,江苏省中小学信息技术等级考试常见问题处理.doc...
- SaaS公司投资分析时,MRR比ARR指标更有用 | 投资人说
- Ext Gantt甘特图1.2破解及方法
- RK3326 android10.0(Q) 系统精简瘦身
- Ext js 下拉框模糊匹配查询,并支持反复输入检索