力扣SQL刷题8
创始人
2024-05-25 08:24:54
0

目录

      • 1212. 查询球队积分
      • 1270. 向公司CEO汇报工作的所有人
      • 1285. 找到连续区间的开始和结束数字
      • 1321. 餐馆营业额变化增长--重要
        • 窗口函数知识点补充

1212. 查询球队积分

题型:读题
解答:先考虑做主方时,再考虑客方时
在这里插入图片描述
在这里插入图片描述

SELECT t.team_id, t.team_name, IFNULL(score,0) num_points
FROM
(SELECT team_id, SUM(score) scoreFROM (SELECT host_team team_id, SUM(CASEWHEN host_goals>guest_goals THEN 3WHEN host_goalsguest_goals THEN 0WHEN host_goals

1270. 向公司CEO汇报工作的所有人

题型:看题,嵌套
解题:幸好题目限定了不超过三次,三次自连接就可以了
在这里插入图片描述

select e1.employee_id 
from Employees e1 , Employees e2 ,Employees e3 
where e1.manager_id = e2.employee_id and  e2.manager_id = e3.employee_id
and e3.manager_id =1 and e1.employee_id !=1

1285. 找到连续区间的开始和结束数字

题型:看题目
解答:和求连续N天思路差不多。
先排序 — 日期减去排序序号 — 对减出来的差做分组 — 最大值和最小值即我们所求
在这里插入图片描述
在这里插入图片描述

select min(log_id) start_id,max(log_id) end_id
from
(select log_id ,rank()over(order by log_id asc) as rk
from Logs) a
group by (log_id-rk)

注意点:select 。。。from (select。。。) a
一定要取一个别名a,不然会报错

1321. 餐馆营业额变化增长–重要

题型:读题
解答:1,先按照每天的累计好,2,再计算7天累计的
在这里插入图片描述
在这里插入图片描述

SELECT DISTINCT visited_on,sum_amount AS amount, ROUND(sum_amount/7, 2) AS average_amount
-- 需要先求出和后除以7,且要加最后的where条件,所以又嵌套了一次
FROM (SELECT visited_on, SUM(amount) OVER ( ORDER BY visited_on ROWS 6 PRECEDING ) AS sum_amount-- 以下是先计算出每天的金额总量FROM (SELECT visited_on, SUM(amount) AS amountFROM CustomerGROUP BY visited_on) TT) LL
-- 最后手动只要覆盖完整7天的数据
WHERE DATEDIFF(visited_on, (SELECT MIN(visited_on) FROM Customer)) >= 6
#输出结果的日期要离最早的那天,至少隔了7天
#DATEDIFF(visited_on, MIN(visited_on) ) >= 6 注意这样不行

窗口函数知识点补充

窗口函数写法:

[你要的操作] OVER ( PARTITION BY  <用于分组的列名>ORDER BY <按序叠加的列名> ROWS <窗口滑动的数据范围> )

滑动数据范围:

当前行 - current row
之前的行 - preceding
之后的行 - following
无界限 - unbounded
表示从前面的起点 - unbounded preceding
表示到后面的终点 - unbounded following

举例:

取当前行和前五行:ROWS between 5 preceding and current row --共6行
取当前行和后五行:ROWS between current row and 5 following --共6行
取前五行和后五行:ROWS between 5 preceding and 5 folowing --共11行

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...