竹笋

首页 » 问答 » 常识 » 数据科学家常见的五个SQL面试问题CS
TUhjnbcbe - 2023/8/5 20:29:00

作者

AlexeiLedenev

翻译

天道酬勤,责编

Carol

在任何以数据为中心的工作中,对SQL有深刻的理解都是成功的关键,尽管这不是工作中最有趣的部分。事实上,除了SELECTFROMWHEREGROUPBYORDERBY之外,还有更多的SQL方法。你知道的功能越多,操作和查询所需的内容就越容易。

作者希望在本文中学习和交流以下两件事:

1)学习和教一些基本功能以外的SQL函数;

2)探讨一些SQL面试练习问题。

*本文中的问题仅来自Leetcode

问题1:第二高的薪水

编写一个SQL查询用于从Employee表中获取第二高的薪水。例如,给定下面的Employee表,查询应返回作为第二高的薪水。如果没有第二高的薪水,则查询应返回null。

+----+--------+

Id

Salary

+----+--------+

1

2

3

+----+--------+

1)解决方案A:使用IFNULL,OFFSET

IFNULL(表达,alt):如果为null,则ifnull()返回指定的值,否则返回期望的值。如果没有第二高的薪水,我们会使用它返回null。OFFSET:offset与ORDERBY子句一起使用可忽略指定的前n行。这会很有用,因为你希望获得第二行(第二高的薪水)

Id

Salary

+----+--------+

1

2

3

+----+--------+

2)解决方案B:使用MAX()

此查询表示选择的MAX薪水不等于最高薪水,这等于选择第二高的薪水。

SELECTIFNULL((SELECTDISTINCTSalaryFROMEmployeeORDERBYSalaryDESCLIMIT1OFFSET1),null)asSecondHighestSalaryFROMEmployeeLIMIT1

问题2:重复的电子邮件

编写SQL查询以在名为Person的表中查找所有重复的电子邮件。

+----+---------+

Id

Email

+----+---------+

1

a

b.
1
查看完整版本: 数据科学家常见的五个SQL面试问题CS