LeetCode 176. Second Highest Salary第二高薪水(数据库)

题目:

在这里插入图片描述

解答:

解法一:

分两部分考虑,第一部分是最高的薪水,第二部分是比最高薪水小的最高的薪水,即第二高薪水

select Max(Salary) SecondHighestSalary from Employee 
where Salary<(select Max(Salary) from Employee)
解法二:
select IFNULL(
    (select Salary from Employee
    group by Salary
    order by Salary DESC
    limit 1,1),null
) as SecondHighestSalary

解析

回顾一下本题中涉及的一些数据库语句的基本用法。

GROUP BY和ORDER BY
group by:通过指定的规则,对数据进行分组,将一个“数据集”划分成若干个“小区域”,从而对若干个“小区域”进行数据处理。
order by: 用来对数据库的一组数据进行排序。其中 desc 为降序,asc 为升序。

group by 和 order by 通常一起使用,从而完成分组加排序的功能
注意:若 group by 和 order by 一起使用时,order by 要在 group by 的后面,并且 order by 的列必须出现在 group by 子句中。

通常和常见的一些聚合函数一起使用

函数作用支持性
sum(列名)求和
max(列名)最大值
min(列名)最小值
avg(列名)平均值
first(列名)第一条记录仅Access支持
last(列名)最后一条记录仅Access支持
count(列名)统计记录数

LIMIT 子句
limit 子句用于限制 select 语句查询结果返回的数量。limit 接受一个或两个数字参数。参数必须是一个整数常量。

如果给定一个参数,那么返回查询结果的前n个记录。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。
select * from tableName limit i,n
i : 为查询结果的索引值(默认从0开始)
n : 为查询结果返回的数量

IFNULL()函数
IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。

IFNULL(expression, alt_value)
如果第一个参数的表达式 expression 为 NULL,则返回第二个参数的备用值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值