首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据分析面试手册《SQL篇》

考频: 难度: 左外连接(left join):将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。...Q1 : 第二高的薪水 考频: 难度: 题目 给定一个如下定义的数据表,编写查询语句获取并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null。...Q2 : 上升的温度 考频: 难度: 题目 给定一个如下定义的数据表,编写一个SQL查询,来查找与之前(昨天的)日期相比温度更高的所有日期的id 。...Q3 : 删除重复的电子邮箱 考频: 难度: 题目 给定一个如下定义的数据表,编写一个SQL删除语句来删除所有重复的电子邮件,只保留一个id最小的唯一电子邮件。...如果两个分数相等,那么两个分数的排名应该相同。 在排名相同的分数后,排名数应该是下一个连续的整数。换句话说,排名之间不应该有空缺的数字。 按 score 降序返回结果表。

1.5K31

【leetcode两题选手】MySQL类题目(六)

题一:删除重复的电子邮箱 编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。...例如,在运行你的查询语句之后,上面的 Person 表应返回以下几行: +----+------------------+ | Id | Email | +----+-------...收获 使用 DELETE 和 WHERE 子句 我们可以使用以下代码,将此表与它自身在电子邮箱列中连接起来。 然后我们需要找到其他记录中具有相同电子邮件地址的更大 ID。...题二:上升的温度 给定一个 Weather 表,编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 Id。...< w2.Temperature 收获 其实思路很明确,就是输在了那个日期判断的函数上,我的函数是这样的: -- select W1.Id from -- Weather W1,Weather W2

32020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MyBatis-从查询昨天的数据说起

    有的sql语句有输入参数比如where后的比较条件就涉及到参数,这时候在Mybatis就要提供输入参数的入口,我们可以用parameterType来定义你想要的输入参数。...相应的,执行完sql语句有时候会有返回结果,比如select完后的结果,这时候我们可以通过resultMap来返回,必要的时候你需要定义一个resultMap,好比下面这样 MyBatis-从查询昨天的数据说起...如何查询昨天的数据 在解决查询昨天的数据这个问题之前,我们首先得知道怎么获取今天的日期。...DATE_SUB 有了格式化的DATE_FORMAT函数,我们可以得到想要的日期格式,有了SYSDATE()也能够得到今天的具体时间了,那么如何得到昨天,明天的时间呢,如果这步可以实现,那么离我们统计昨天所有流水明细的任务就不远了...最终的sql语句类似 MyBatis-从查询昨天的数据说起 有了这些知识点,对于上面提到的定期删除数据以及其他的数据整理工作基本上都能解决了,剩下的就是敲代码实现业务了。

    1.5K80

    ​LeetCode刷题实战197:上升的温度

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !...今天和大家聊的问题叫做 上升的温度,我们先来看题面: https://leetcode-cn.com/problems/rising-temperature/ Write an SQL query to...题意 编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 id 。返回结果 不要求顺序 。 ?...(w1.RecordDate, w2.RecordDate) = 1 #筛选条件:温度升高 where w1.Temperature > w2.Temperature; 好了,今天的文章就到这里,如果觉得有所收获...,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。

    41210

    salesforce 零基础学习(三十九) soql函数以及常量

    在salesforce中,我们做SOQL查询时,往往需要用到计算式,比如求和,求平均值,或者过滤数据时,往往需要通过时间日期过滤,SOQL已经封装了很多的函数,可以更加方便我们的sql查询而不需要自己另外设计...并且如果sql语句中含有group by,则不能使用count()函数。 二. 日期相关处理函数  在数据查询中,我们很多时候需要通过日期进行数据过滤。这时,使用soql的函数或者常量操作会更加便捷。...DAY_IN_YEAR(field name):返回参数日期中当前日期在一年(365天)中对应的天数,例如如果是2月1日,则返回32 DAY_ONLY(field name):返回Datetime类型参数对应的...还有很多常用的函数,详细看API 三.日期处理常用常量 数据查询中,有的时候使用常量会减少很多的参数传递,比如想要查CreatedDate为本年的数据,如果不适用SOQL自带的常量,则sql查询时,便需要...常用常量如下所示: YESTERDAY: 昨天 select Id from Account where CreatedDate = YESTERDAY   -->查询创建日期为昨天的Account记录

    2.7K00

    MySQL 数据库中的时间操作与常见函数

    MySQL 数据库中的时间操作与常见函数 我不知道大家第一次接触代码是什么,但是我可以告诉大家青阳第一次接触代码就是数据库查询语句,也就是SQL。第一本买的和编程相关的书是《mysql应知应会》。...我是半路出家的,在最开始我天真的一万mysql就是所有了,接触越深感觉,直接越浅薄,也截止这次机会回顾一下,mysql数据库中的时间操作。在数据库的实际应用中,时间操作和处理是非常常见的需求。...今天,就让我和大家一起回顾了解以下 MySQL 中的时间操作和常见函数。 一、MySQL 中的时间数据类型 MySQL 提供了多种时间数据类型,以满足不同的应用场景。...二、时间操作方法 获取当前时间 NOW()函数可以获取当前的日期和时间,返回值为 DATETIME 类型。例如,执行SELECT NOW();,就会返回当前的具体日期和时间。...四、MySql查询当天、本周、本月、本季度、本年的数据 1.今天 SELECT * FROM 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(NOW()); 2.昨天 SELECT

    27700

    SQL好的写法

    要知道sql语句,我想我们有必要知道sqlserver查询分析器怎么执行我么sql语句的,我么很多人会看执行计划,或者用profile来监 视和调优查询语句或者存储过程慢的原因,但是如果我们知道查询分析器的执行逻辑顺序...三、只返回需要的数据     返回数据到客户端至少需要数据库提取数据、网络传输数据、客户端接收数据以及客户端处理数据等环节,如果返回不需要的数据,就会增加服务器、网络和客户端的无效劳动,其害处是显而易见的...六、子查询的用法   子查询是一个 SELECT 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句或其它子查询中。   ... AND月=10   B、 不要对索引字段进行格式转换 日期字段的例子: WHERE CONVERT(VARCHAR(10), 日期字段,120)='2010-07-15'  应该改为  WHERE ...,如果比较长的话,最后用标记符标开,因为这样可读性很好,即使语句写的不怎么样但是语句工整,C# 有region sql我比较喜欢用的就是      --startof 查询在职人数

    93920

    sql server之数据库语句优化

    三、只返回需要的数据 返回数据到客户端至少需要数据库提取数据、网络传输数据、客户端接收数据以及客户端处理数据等环节,如果返回不需要的数据,就会增加服务器、网络和客户端的无效劳动,其害处是显而易见的,避免这类事件需要注意...所以我的建议是,在并发系统中,尽量使用CREATE TABLE + INSERT INTO,而大数据量的单个语句使用中,使用SELECT INTO。...六、子查询的用法 子查询是一个 SELECT 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句或其它子查询中。...只要我们在查询语句中没有强制指定索引,索引的选择和使用方法是SQLSERVER的优化器自动作的选择,而它选择的根据是查询语句的条件以及相关表的统计信息,这就要求我们在写SQL语句的时候尽量使得优化器可以使用索引...还有就是我们写存储过程,如果比较长的话,最后用标记符标开,因为这样可读性很好,即使语句写的不怎么样,但是语句工整,C# 有region,SQL我比较喜欢用的就是: --startof 查询在职人数 SQL

    1.5K70

    8个能提升工作效率的SQL好习惯

    要知道sql语句,我想我们有必要知道sqlserver查询分析器怎么执行我么sql语句的,我么很多人会看执行计划,或者用profile来监视和调优查询语句或者存储过程慢的原因,但是如果我们知道查询分析器的执行逻辑顺序...只返回需要的数据 返回数据到客户端至少需要数据库提取数据、网络传输数据、客户端接收数据以及客户端处理数据等环节,如果返回不需要的数据,就会增加服务器、网络和客户端的无效劳动,其害处是显而易见的,避免这类事件需要注意...子查询的用法 子查询是一个 SELECT 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句或其它子查询中。...2010 AND月=10 B、 不要对索引字段进行格式转换 日期字段的例子: WHERE CONVERT(VARCHAR(10), 日期字段,120)='2010-07-15' 应该改为 WHERE日期字段...如果比较长的话,最后用标记符标开,因为这样可读性很好,即使语句写的不怎么样但是语句工整,C# 有region sql我比较喜欢用的就是 --startof 查询在职人数 sql语句 --

    23920

    SQL养成这8个好习惯是一笔财富

    要知道SQL语句,我想我们有必要知道SQLserver查询分析器怎么执行SQL语句的,我么很多人会看执行计划,或者用profile来监视和调优查询语句或者存储过程慢的原因,但是如果我们知道查询分析器的执行逻辑顺序...3、只返回需要的数据 返回数据到客户端至少需要数据库提取数据、网络传输数据、客户端接收数据以及客户端处理数据等环节,如果返回不需要的数据,就会增加服务器、网络和客户端的无效劳动,其害处是显而易见的,避免这类事件需要注意...6、子查询的用法 子查询是一个 SELECT 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句或其它子查询中。...AND月=10 B、 不要对索引字段进行格式转换 日期字段的例子: WHERE CONVERT(VARCHAR(10), 日期字段,120)='2010-07-15' 应该改为 WHERE日期字段〉=...如果比较长的话,最后用标记符标开,因为这样可读性很好,即使语句写的不怎么样但是语句工整,C# 有region sql我比较喜欢用的就是 --startof  查询在职人数      sql语句   --

    75210

    SQL Server优化之SQL语句优化

    三、只返回需要的数据 返回数据到客户端至少需要数据库提取数据、网络传输数据、客户端接收数据以及客户端处理数据等环节,如果返回不需要的数据,就会增加服务器、网络和客户端的无效劳动,其害处是显而易见的,避免这类事件需要注意...所以我的建议是,在并发系统中,尽量使用CREATE TABLE + INSERT INTO,而大数据量的单个语句使用中,使用SELECT INTO。...六、子查询的用法 子查询是一个 SELECT 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句或其它子查询中。...AND 月=10 (3)不要对索引字段进行格式转换 日期字段的例子: WHERE CONVERT(VARCHAR(10), 日期字段,120)='2010-07-15' 应该改为 WHERE 日期字段...还有就是我们写存储过程,如果比较长的话,最后用标记符标开,因为这样可读性很好,即使语句写的不怎么样,但是语句工整,C# 有region,SQL我比较喜欢用的就是: –startof 查询在职人数 SQL

    3.5K34

    一场pandas与SQL的巅峰大战(四)

    工作中常见的是周同比和日环比。周同比即当天和上周同一天数据的变化百分比,日环比即当天和昨天数据的变化百分比。本文也主要计算周同比和日环比。数据概况如下,是随机生成的两个月的销售额数据。...和前面的文章类似,使用navicate把我准备的orderamt.sql导入数据库中即可。 ?...思路一:自关联,关联条件是日期差分别是1和7,分别求出当天,昨天,7天前的数据,用三列形式展示,之后就可以进行作差和相除求得百分比。...思路二:不进行关联,直接查询当前日期前一天和前七天的数据,同样以3列的形式展示。 来看一下SQL代码: ? 上面代码中我们关联了两次,条件分别是日期相差1天和日期相差7天。关联不上的则留空。...这种写法巧妙地使用表的别名查询出了前1天和前7天的金额,效果和第一种写法一样,不过这种写法可能小众一点。

    1.9K10

    理解SQL原理SQL调优你必须知道的10条铁律

    要知道sql语句,我想我们有必要知道sqlserver查询分析器怎么执行我么sql语句的,我么很多人会看执行计划,或者用profile来监视和调优查询语句或者存储过程慢的原因,但是如果我们知道查询分析器的执行逻辑顺序...只返回需要的数据 返回数据到客户端至少需要数据库提取数据、网络传输数据、客户端接收数据以及客户端处理数据等环节,如果返回不需要的数据,就会增加服务器、网络和客户端的无效劳动,其害处是显而易见的,避免这类事件需要注意...子查询的用法 子查询是一个 SELECT 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句或其它子查询中。...AND月=10 B、 不要对索引字段进行格式转换 日期字段的例子: WHERE CONVERT(VARCHAR(10), 日期字段,120)='2010-07-15' 应该改为 WHERE日期字段...,最后用标记符标开,因为这样可读性很好,即使语句写的不怎么样但是语句工整,C# 有region,sql我比较喜欢用的就是: --startof 查询在职人数 sql语句 --end of 正式机器上我们一般不能随便调试程序

    1.3K50

    MySQL查询连续打卡信息?

    ,设计数据表中有两个用户、日期存在跨月、且可能存在日期不连续的情形(虽然实际中可能并不存在这样的情况),插入如下数据: 1INSERT INTO `testd`(`id`, `userid`, `dday...02 单用户打卡查询 单用户情况下,求解连续打卡信息意味着,在对日期顺序排序的基础上: 如果用户今天打卡: 如果昨天也打卡,则今天连续打卡天数是在昨天基础上+1 如果昨天未打卡,则连续打卡天数从1开始,...筛选条件改成大于7就是最近的连续7天打卡的日期。得到查询结果: ? 单用户最近连续打卡信息 那么如果要查询历史打卡天数最长的日期呢?...实际上,在以上查询的基础上,这样的查询就是在多用户连续打卡信息表(03部分第一张结果)中筛选出其后一天打卡为0的记录。...05 总结 本文对MySQL中查询用户连续打卡这一问题进行了分析,主要是基于自定义变量的方式,实现了以下问题: 查询各用户每天的连续打卡信息(包括未打卡时记为0) 查询各用户最近连续打卡信息 查询各用户历史最长打卡信息

    4.1K10

    SQL养成这8个好习惯是一笔财富

    三、只返回需要的数据 返回数据到客户端至少需要数据库提取数据、网络传输数据、客户端接收数据以及客户端处理数据等环节,如果返回不需要的数据,就会增加服务器、网络和客户端的无效劳动,其害处是显而易见的,避免这类事件需要注意...所以我的建议是,在并发系统中,尽量使用CREATE TABLE + INSERT INTO,而大数据量的单个语句使用中,使用SELECT INTO。...六、子查询的用法 子查询是一个 SELECT 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句或其它子查询中。...2010 AND月=10 B、 不要对索引字段进行格式转换 日期字段的例子: WHERE CONVERT(VARCHAR(10), 日期字段,120)='2010-07-15' 应该改为 WHERE日期字段...,如果比较长的话,最后用标记符标开,因为这样可读性很好,即使语句写的不怎么样但是语句工整,C# 有region sql我比较喜欢用的就是 --startof 查询在职人数 sql语句 -

    12410

    数据科学面试中你应该知道的十个SQL概念

    然而,当涉及到数据科学面试时,大多数公司只测试其少数核心概念。以下这10个概念因其在实际中应用最多,而最常出现。 本文将讨论10个最重要的SQL概念。在准备面试时,你应该主要关注这些概念。 开始吧!...子查询 子查询也称为内部查询或嵌套查询,是查询内查询,会被嵌入到WHERE子句中。这是种好方法,可以解决需要多次按序查询以生成给定结果的特殊问题。...须知的函数: EXTRACT DATEDIFF 示例问题:给定一个Weather表,编写一个SQL查询以找出所有高于之前(昨天)温度的日期Id。 image.png 9....窗口函数 窗口函数使你能对所有行执行聚合值,而不是只返回一行(这是GROUP BY语句的用处)。这对于行排序、计算累计等等十分有用。 示例问题:编写一个查询以获取薪水最高的empno。...希望这对你的面试准备过程有所帮助,并祝你在未来一切顺利。我相信,如果对这10个概念了如指掌,那么你就可以应对面试中的大多数SQL问题了。

    1.2K00

    MySQL 系列教程之(七)DQL:从 select 开始丨【绽放吧!数据库】

    在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。...例如:我需要在数据库中查询出18期或19期的学员,并且要求是女生 select name from user where classid=18 or classid =19 and sex='m'...IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。...城市、州和邮政编码存储在不同的列中(应该这样),但邮件标签打印程序却需要把它们作为一个恰当格式的字段检索出来。 列数据是大小写混合的,但报表程序需要把所有数据按大写表示出来。...但此新计算列的名字是什么呢?实际上它没有名字,它只是一个值。 > >如果仅在SQL查询工具中查看一下结果,这样没有什么不好。

    3.6K43

    SQL Server 的时间函数

    --返回:17 4、datepart 返回代表指定日期的指定日期部分的整数 SELECT DATEPART(month, '2004-10-15') --返回 10 5、datename 返回代表指定日期的指定日期部分的字符串...:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from 表名 where DateDiff...,date) 返回日期date中,interval指定部分所对应的整数值 DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称 其中DatePart...-2-2,然后格式化数据库表中的日期 Convert(varchar(10),TimeFiled,120),最后我们就可以用一条Sql语句得到当天的数据了....不能使用用户定义的数据类型。第二个参数是你要转换的字段,我这里是[time]。

    2.8K60
    领券