Mysql入门

目录

  • Mysql安装指南
  • Mysql的基础使用
  • Mysql进阶
  • Mysql常用函数

Mysql安装指南

Mysql的基础使用方法

Mysql进阶

Mysql常用函数

COALESCE

COALESCE(合并)函数在 SQL 中用于从一系列的参数中返回第一个非 NULL 值,如果所有参数都是 NULL,它将返回 NULL

例如:SELECT COALESCE(NULL, NULL, 'First non-null value', 123, NULL);

以上函数就会返回 'First non-null value',因为这是第一个非 NULL 的参数。

在力扣176.第二高的薪水中,可以使用COALESCE函数来保证无论子查询中返回值情况如何,都能保证有一个值输出,要么为第二高的薪水值,要么为NULL,而不会出现空的情况。

with t1 as (
select id,salary,dense_rank() over (order by salary desc) as salary_rank 
from Employee 
)
select coalesce((select salary from t1 where salary_rank = 2 limit 1),null) as SecondHighestSalary

三种常用排序

  • ROW_NUMBER()为结果集中的每一行分配一个唯一的序号,序号从1开始,按照指定的排序顺序递增。如果存在相同的行,则序号仍然递增,不会重复。
    • 特点:
      • 排名递增
      • 不跳序
      • 不重复
  • RANK()为结果集中的每一行分配一个排名,如果存在相同的行,则它们会得到相同的排名,并且后续的排名会跳过。例如,如果要对成绩进行排序,当有两个第一的时候,两行并列第一(排序值都为1),然后下一行的成绩排序就变成3,也就是1,1,3这样的序号排序
    • 特点
      • 排名重复
      • 会跳序
  • DENSE_RANK()RANK()类似,但不会跳序,即便有并列的,其下一行的序号仍旧从当前序号增加1而不是跳增
    • 特点
      • 排名递增
      • 不跳序
      • 重复

使用实际的例子(力扣178.分数排名)来查看row_number(),rank()和dense_rank()的区别

select id,score, 
row_number() over (order by score desc) as `row_number`,
rank() over (order by score desc) as `rank`,
dense_rank() over (order by score desc)  as `dense_rank `
from Scores 
order by score desc
output:
| id | score | row_number | rank | dense_rank  |
| -- | ----- | ---------- | ---- | ----------- |
| 3  | 4     | 1          | 1    | 1           |
| 5  | 4     | 2          | 1    | 1           |
| 4  | 3.85  | 3          | 3    | 2           |
| 2  | 3.65  | 4          | 4    | 3           |
| 6  | 3.65  | 5          | 4    | 3           |
| 1  | 3.5   | 6          | 6    | 4           |
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇