MySQL中DISTINCT, ORDER BY,LIMIT,OFFSET等用法

这篇博客探讨了如何使用SQL查询语句从Employee表中获取第二高的薪水。通过使用DISTINCT、ORDER BY和LIMIT/OFFSET子句,我们可以有效地过滤并排序数据,从而找出次高的薪资记录。
摘要由CSDN通过智能技术生成

题目来自:
https://leetcode-cn.com/problems/second-highest-salary/submissions/

AC代码如下:

SELECT 
    (SELECT DISTINCT Salary AS SecondHighestSalary
    FROM Employee 
    ORDER BY Salary DESC
    LIMIT 1 OFFSET 1) AS SecondHighestSalary;
  • DISTINCT
    会将查询后若干行完全相同的结果删除,只保留一行
    若执行:
select distinct name,id from user;

得到的结果为name和id都不同时重复的记录
要是想得到只在name上不重复的记录可以执行:

select id,name from user group by name;
  • ORDER BY | DESC
    将查询结果按照列来排序,默认由小到大,加DESC则表示由大到小
    如果要先排序某一列,再排序另外一列,只需把另外一列列名加进来就可:
SELECT * FROM stu ORDER BY Cno,Sno;

若要先Cno升序,Sno降序

SELECT * FROM stu ORDER BY Cno,Sno DESC;
  • LIMIT | OFFSET
    limit代表需要查询数据的个数
    offset为查询数据时跳过数据的个数
    可组合使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值