当前位置: 首页 > wzjs >正文

用v9做网站优化广西建设学院网站

用v9做网站优化,广西建设学院网站,律所网站建设管理制度,自己做网站开发目录 1.找类别最高值 使用子查询 使用窗口函数(MySQL8.X支持) 扩展:查找类别前N高的值 2.删除重复值并保留最小序号 delete实现 筛选无重复且序号最小值 select——where in select——join&子查询 3.找带条件的连续值 窗口函数…

目录

1.找类别最高值

使用子查询

使用窗口函数(MySQL8.X支持)

扩展:查找类别前N高的值

2.删除重复值并保留最小序号

delete实现

筛选无重复且序号最小值

select——where in

select——join&子查询

3.找带条件的连续值

窗口函数实现

日期比较函数


1.找类别最高值

184. 部门工资最高的员工 - 力扣(LeetCode)

错误的查询方式:

(看看都会写写全错版T^T)

SELECT department.name AS Department, employee.name AS Employee, employee.salary AS Salary
FROM employee
JOIN department ON employee.departmentId = department.id 
GROUP BY department.id 
HAVING MAX(salary);

问题分析

  1. GROUP BYSELECT 列不一致

    SELECT 中选择了 department.nameemployee.nameemployee.salary,但在 GROUP BY 中只按 department.id 分组。这会导致语法错误,因为 GROUP BY 后的列必须与 SELECT 中的非聚合列一致。
  2. HAVING 子句的使用

    HAVING MAX(salary) 是不合法的,因为 HAVING 子句需要一个条件来过滤分组结果。没有提供一个具体的条件,只是写了 MAX(salary)
  3. 逻辑问题

    目标是筛选每个部门的最高工资员工,但当前的查询逻辑无法实现这一点。需要先找到每个部门的最高工资,然后再关联员工表来获取对应的员工信息。

正确的查询方式:

使用子查询

select department.name as Department,employee.name as Employee,employee.salary as Salary
from employee
join department on employee.departmentId = department.id 
where (employee.salary,employee.departmentId) in(select max(salary),departmentIdfrom employeegroup by departmentId
)
  • 子查询 SELECT departmentId, MAX(salary) FROM Employee GROUP BY departmentId 找到每个部门的最高工资。

  • 外层查询通过 WHERE (departmentId, salary) IN (...) 筛选出这些最高工资对应的员工。

使用窗口函数(MySQL8.X支持)

SELECT Department, Employee, Salary
FROM (SELECT d.name AS Department, e.name AS Employee, e.salary AS Salary,RANK() OVER (PARTITION BY d.id ORDER BY e.salary DESC) AS rankFROM Employee eJOIN Department d ON e.departmentId = d.id
) AS ranked_employees
WHERE rank = 1;
  • 使用窗口函数 RANK(),对每个部门的员工按工资降序排名。

      PARTITION BY employee.departmentId:按 departmentId 分组

      ORDER BY employee.salary DESC:按工资降序排列,工资最高的员工排名为1。

  • 外层查询筛选出排名为1的员工,即每个部门的最高工资员工。

扩展:查找类别前N高的值

185. 部门工资前三高的所有员工 - 力扣(LeetCode)

使用方法2窗口函数进行推广

/* Write your T-SQL query statement below */
SELECT Department, Employee, Salary
FROM (SELECT d.name AS Department, e.name AS Employee, e.salary AS Salary,dense_RANK() OVER (PARTITION BY d.id ORDER BY e.salary DESC) AS rankFROM Employee eJOIN Department d ON e.departmentId = d.id
) AS ranked_employees
WHERE rank <= 3;

 

2.删除重复值并保留最小序号

196. 删除重复的电子邮箱 - 力扣(LeetCode)

delete实现

-- 用自连接:
delete p1
from person p1
join person p2 on p1.email=p2.email and p1.id>p2.id-- 不用自连接
DELETE p1 FROM Person p1,Person p2
WHEREp1.Email = p2.Email AND p1.Id > p2.Id

筛选无重复且序号最小值

select——where in

SELECT id, email
FROM person
WHERE (email, id) IN (SELECT email, MIN(id)FROM personGROUP BY email
);
  • 子查询SELECT email, MIN(id) FROM Person GROUP BY email 找到每个 email 的最小 id。这个子查询的结果是一个临时表,包含每个 email 和对应的最小 id

  • 主查询:通过 WHERE (email, id) IN (...) 筛选出 Person 表中那些 emailid 匹配子查询结果的记录。

select——join&子查询

SELECT p1.id, p1.email
FROM person p1
JOIN (SELECT email, MIN(id) AS min_idFROM personGROUP BY email
) p2 ON p1.email = p2.email AND p1.id = p2.min_id;
  • 子查询:  SELECT email, MIN(id) AS min_id FROM person GROUP BY email 找到每个 email 的最小 id。这个子查询的结果是一个临时表 p2,包含每个 email 和对应的最小 id

  • 主查询:通过 JOINperson 表和子查询的结果 p2 连接起来,条件是 p1.email = p2.email AND p1.id = p2.min_id,这样可以筛选出每个 email 的最小 id 对应的记录。

(select力扣上运行不了但我觉得逻辑上是这样)

3.找带条件的连续值

197. 上升的温度 - 力扣(LeetCode)

窗口函数实现

# Write your MySQL query statement below
select id as Id from (select id,temperature,recordDate,LAG(temperature,1) over (order by recordDate) as pre_temperature,LAG(recordDate,1) over (order by recordDate) as pre_recordDatefrom weather
) as queryweather
where pre_temperature<temperature and DATEDIFF(recordDate,pre_recordDate)=1
  • 子查询LAG(temperature, 1) OVER (ORDER BY recordDate) AS pre_temperature:获取前一天的温度。LAG(recordDate, 1) OVER (ORDER BY recordDate) AS pre_recordDate:获取前一天的日期。

  • 主查询WHERE pre_temperature < temperature:确保当前温度高于前一天的温度。

                   AND DATEDIFF(recordDate, pre_recordDate) = 1:确保当前日期和前一天的日期是连续的。

日期比较函数

  • DATEDIFF():计算两个日期之间的天数差

    SELECT DATEDIFF('2025-05-18', '2025-05-10') AS days_difference;
  • DATE_ADD()DATE_SUB():在日期上加上或减去指定的时间间隔

    SELECT DATE_ADD('2025-05-18', INTERVAL 10 DAY) AS future_date;
    SELECT DATE_SUB('2025-05-18', INTERVAL 10 DAY) AS past_date;


后面两题都用到了之前遇到过的知识点,就不过多赘述啦

(其实是靠自己写出来了 嘿嘿,虽然他们都是简单的题)


4.

586. 订单最多的客户 - 力扣(LeetCode)

select customer_number
from (select customer_number,count(*) as cn from ordersgroup by customer_numberorder by cn DESC
) as subquery
limit 1

 

5.

511. 游戏玩法分析 I - 力扣(LeetCode)

select player_id,event_date as first_login
from activity
where (player_id,event_date) in(select player_id,min(event_date)from activitygroup by player_id
)


文章转载自:

http://NfthvPI0.gwqkk.cn
http://eCwFgttM.gwqkk.cn
http://Ptu1rSay.gwqkk.cn
http://dDHyfBhq.gwqkk.cn
http://p6j5uD1W.gwqkk.cn
http://MoQjtIVw.gwqkk.cn
http://M19SknzU.gwqkk.cn
http://a9zYupVQ.gwqkk.cn
http://hKrGUQjI.gwqkk.cn
http://6cnxKOki.gwqkk.cn
http://scTUGRDt.gwqkk.cn
http://k8A36azj.gwqkk.cn
http://v2buAJeW.gwqkk.cn
http://a0uTgzfD.gwqkk.cn
http://SqID9Fil.gwqkk.cn
http://6YIQnVx5.gwqkk.cn
http://OrPN8uvV.gwqkk.cn
http://Ab7n8xj7.gwqkk.cn
http://v5agzYZL.gwqkk.cn
http://iuW1nryb.gwqkk.cn
http://0KnLaTmm.gwqkk.cn
http://XJEHyanE.gwqkk.cn
http://U2nsunGO.gwqkk.cn
http://OzY5FVRa.gwqkk.cn
http://oh05cUuu.gwqkk.cn
http://WWTOOLX9.gwqkk.cn
http://MaMIxrk3.gwqkk.cn
http://KnEhwUKc.gwqkk.cn
http://e62KjPop.gwqkk.cn
http://Xa94kwR1.gwqkk.cn
http://www.dtcms.com/wzjs/646126.html

相关文章:

  • 做阀门的网站广州app开发公司排行十强
  • 建网站买什么主机如何优化网络延迟
  • flash企业网站与网站建设相关的论文题目
  • 小韩网站源码百度网盘搜索引擎入口在哪
  • 网站底部素材wordpress顶部菜单哪里设置
  • 宝塔搭建网站教程wordpress综合类网站
  • OA 公司网站 铁道建设报安卓手机做网站服务器吗
  • 香水网站建设规划书福建建筑人才服务中心档案
  • 做平台还是自己做网站网站开发什么技术路线
  • 学生管理系统网站怎么做本地婚姻介绍网站
  • 东山县建设局网站用万网建设网站教程视频
  • 兼职做网站在那里接任务素材设计做的好的网站有哪些
  • 网站推广引流最快方法郑州资讯
  • 仿阿里云网站佛山北京网站建设
  • 上海网站建设方案进入百度官网首页
  • 网站怎么做交易平台大宗商品交易平台网
  • 贵州网站seo工商登记查询系统官网
  • app网站开发后台处理济南手机建站公司
  • 如何做婚介网站网店美工主要学什么
  • 网页游戏平台网站wordpress登录评论
  • 光伏电站建设的国家网站成都调查事务所
  • 关于网站建设的电话销售话术中国工程建设招标网官方网站
  • 网上注册公司流程及步骤上海网站排名优化
  • 商务局网站溪江农贸市场建设建设工程专业承包交易中心网站
  • 深圳金融投资网站建设设计类专业专科学校
  • 网站网页设计要求网站代码优化调整
  • 建立企业网站公司正邦设计的logo
  • 网站开发注意问题室内设计平面图尺寸
  • 杭州专业网站制作做菠菜网站
  • 婚纱摄影团购网站模板西安自由行攻略5天详细