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

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

CASE WHEN 许多问题都可能需要使用CASE-WHEN语句,仅仅是因为这个概念功能如此之多。 在根据其他变量分配某个值或类时,用CASE-WHEN可以编写复杂的条件语句。...例如,如果你已有“月(month)”列,又希望为每个month创建一个单独的列,则可以使用CASE WHEN语句来透视数据。 示例问题:编写一个SQL查询重新排列表样式,以使每个月对应一个收入栏。...SELECT DISTINCT SELECT DISTINCT语句是一定要记牢的。将SELECT DISTINCT语句与聚合函数(即第三个概念)一起使用是非常常见的。...子查询和WITH AS语句在查询中的使用次数都非常多,因此你需要知道如何使用它们。 示例问题:假设一个网站包含两个数据表,Customers表和Orders表。...窗口函数 窗口函数使你能对所有行执行聚合值,而不是只返回一行(这是GROUP BY语句的用处)。这对于行排序、计算累计等等十分有用。 示例问题:编写一个查询以获取薪水最高的empno。

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

MySQL的存储过程_MySQL创建存储过程

if的使用 条件判断可以说在很多编程语言中都不陌生,在存储过程中也一样,而且使用的场景很多,务必掌握; 1、if 条件语句语法结构 IF 条件1 THEN ........满足条件时,再执行循环体中的SQL语句; WHILE 条件 DO SQL逻辑......END WHILE; 先判定条件,如果条件为true,则执行逻辑,否则,执行逻辑 需求:从1累加到N,并求出累加的结果 create procedure p6(in n int) begin...BEGIN -- SQL语句 RETURN ...; END ; characteristic说明: DETERMINISTIC:相同的输入参数总是产生相同的结果; NO SQL :包含...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

22.2K21

MySQL数据库:第五章:常见函数

SELECT CURDATE(); #只获取当前时间,包含日期 SELECT CURTIME(); #获取两个日期之差(前面-后面的天数差) SELECT DATEDIFF('2018-8-18',...参数1:条件 参数2:条件成立,返回的值 参数3:条件不成立,返回的值 SELECT IF(LENGTH(last_name)>LENGTH(first_name),'名大','姓大') 备注, last_name..., first_name FROM employees; #2、case结构 回顾java的switch case语句 switch(判断的变量){ case 常量值1:语句1;break; case...常量值2:语句1;break; case 常量值3:语句1;break; … default:语句n;break } 特点:做等值判断 语法1:类似于switch case,实现等值判断 case 判断的字段或表达式...使用 case-when,按照下面的条件: job                      grade AD_PRES            A ST_MAN              B IT_PROG

37220

MySQL:8种SQL典型错误用法,值得收藏!

2、隐式转换 SQL语句中查询变量和字段定义类型匹配是另一个常见的错误。比如下面的语句: 其中字段 bpn 的定义为 varchar(20),MySQL 的策略是将字符串转换为数字之后再比较。...如下面的语句,从执行计划可以看出其条件作用于聚合子查询之后 确定从语义上查询条件可以直接下推后,重写如下: 执行计划变为: 7、提前缩小范围 先上初始 SQL 语句: 数为90万,时间消耗为...由于最后 WHERE 条件以及排序均针对最左主表,因此可以先对 my_order 排序提前缩小数据量再做左连接。SQL 重写后如下,执行时间缩小为1毫秒左右。...不难看出子查询 c 是全表聚合查询,在表数量特别大的情况下会导致整个语句的性能下降。 其实对于子查询 c,左连接最后结果集只关心能和主表 resourceid 能匹配的数据。...因此我们可以重写语句如下,执行时间从原来的2秒下降到2毫秒。 但是子查询 a 在我们的SQL语句中出现了多次。这种写法不仅存在额外的开销,还使得整个语句显的繁杂。

76310

SQL 中常被忽视的 8 种错误用法

02 隐式转换 SQL语句中查询变量和字段定义类型匹配是另一个常见的错误。比如下面的语句: 其中字段 bpn 的定义为 varchar(20),MySQL 的策略是将字符串转换为数字之后再比较。...,从执行计划可以看出其条件作用于聚合子查询之后 确定从语义上查询条件可以直接下推后,重写如下: 执行计划变为: 07 提前缩小范围 先上初始 SQL 语句: 数为90万,时间消耗为12秒。...由于最后 WHERE 条件以及排序均针对最左主表,因此可以先对 my_order 排序提前缩小数据量再做左连接。SQL 重写后如下,执行时间缩小为1毫秒左右。...不难看出子查询 c 是全表聚合查询,在表数量特别大的情况下会导致整个语句的性能下降。 其实对于子查询 c,左连接最后结果集只关心能和主表 resourceid 能匹配的数据。...因此我们可以重写语句如下,执行时间从原来的2秒下降到2毫秒。 但是子查询 a 在我们的SQL语句中出现了多次。这种写法不仅存在额外的开销,还使得整个语句显的繁杂。

73020

8种最坑的SQL错误用法,第一个就很坑?

2、隐式转换 SQL语句中查询变量和字段定义类型匹配是另一个常见的错误。比如下面的语句: ? 其中字段 bpn 的定义为 varchar(20),MySQL 的策略是将字符串转换为数字之后再比较。...确定从语义上查询条件可以直接下推后,重写如下: ? 执行计划变为: ? 7、提前缩小范围 先上初始 SQL 语句: ? 数为90万,时间消耗为12秒。 ?...由于最后 WHERE 条件以及排序均针对最左主表,因此可以先对 my_order 排序提前缩小数据量再做左连接。SQL 重写后如下,执行时间缩小为1毫秒左右。 ?...不难看出子查询 c 是全表聚合查询,在表数量特别大的情况下会导致整个语句的性能下降。 其实对于子查询 c,左连接最后结果集只关心能和主表 resourceid 能匹配的数据。...因此我们可以重写语句如下,执行时间从原来的2秒下降到2毫秒。 ? 但是子查询 a 在我们的SQL语句中出现了多次。这种写法不仅存在额外的开销,还使得整个语句显的繁杂。

93820

8种最坑的SQL错误用法,第一个就很坑?

2、隐式转换 SQL语句中查询变量和字段定义类型匹配是另一个常见的错误。比如下面的语句: ? 其中字段 bpn 的定义为 varchar(20),MySQL 的策略是将字符串转换为数字之后再比较。...确定从语义上查询条件可以直接下推后,重写如下: ? 执行计划变为: ? 7、提前缩小范围 先上初始 SQL 语句: ? 数为90万,时间消耗为12秒。 ?...由于最后 WHERE 条件以及排序均针对最左主表,因此可以先对 my_order 排序提前缩小数据量再做左连接。SQL 重写后如下,执行时间缩小为1毫秒左右。 ?...不难看出子查询 c 是全表聚合查询,在表数量特别大的情况下会导致整个语句的性能下降。 其实对于子查询 c,左连接最后结果集只关心能和主表 resourceid 能匹配的数据。...因此我们可以重写语句如下,执行时间从原来的2秒下降到2毫秒。 ? 但是子查询 a 在我们的SQL语句中出现了多次。这种写法不仅存在额外的开销,还使得整个语句显的繁杂。

74541

8个SQL错误写法,你中枪了几个

2、隐式转换 SQL语句中查询变量和字段定义类型匹配是另一个常见的错误。比如下面的语句: ? 其中字段 bpn 的定义为 varchar(20),MySQL 的策略是将字符串转换为数字之后再比较。...: 确定从语义上查询条件可以直接下推后,重写如下: 执行计划变为: 7、提前缩小范围 先上初始 SQL 语句: 该SQL语句原意是:先做一系列的左连接,然后排序取前15条记录。...由于最后 WHERE 条件以及排序均针对最左主表,因此可以先对 my_order 排序提前缩小数据量再做左连接。SQL 重写后如下,执行时间缩小为1毫秒左右。...不难看出子查询 c 是全表聚合查询,在表数量特别大的情况下会导致整个语句的性能下降。 其实对于子查询 c,左连接最后结果集只关心能和主表 resourceid 能匹配的数据。...因此我们可以重写语句如下,执行时间从原来的2秒下降到2毫秒。 但是子查询 a 在我们的SQL语句中出现了多次。这种写法不仅存在额外的开销,还使得整个语句显的繁杂。使用 WITH 语句再次重写: ?

85820

MySQL5_存储过程-sql编程-函数-触发器-用户管理

(2) case-when语句 (3)loop循环 (4)while循环 (5)repeat循环 (6)leave和iterate 3.MySql函数 内置函数 (1).数字类 (2).大小写转换 (...,SQL语句的后面为了保证语法结构必须要有分号(;),但是默认情况下分号表示客户端代码发送到服务器执行。...#调用存储过程 call pro_1()// #包涵多条sql语句的 #in代表输入参数,可以省略 #return #procedure方便大型语句的查询;在创建成功以后,直接进行了语法的检查; create...#语法: if 条件 then //代码1 elseif 条件 then //代码2 else //代码3 end if; create procedure pro_8(in grade int...'普通会员' as '等级'; else select '游客' as '等级'; end if; end // #调用 call pro_8(3)// (2) case-when

1.3K20

11.Elasticsearch查询关键字2

- must_not:文档必须匹配这些条件才可以被筛选出来。 - should:如果满足这些语句中的任意语句,将增加 _score ,否则,无任何影响。...- filter:必须 匹配,但它以评分、过滤模式来进行。这些语句对评分没有贡献,只是根据过滤标准来排除或包含文档。 2.相关性得分计算方式 每一个子查询都独自地计算文档的相关性得分。...一旦他们的得分被计算出来, bool 查询就将这些得分进行合并并且返回一个代表整个布尔操作的得分。...3.filter过滤查询 在上面的查询中,如果我们不想因为date这个字段来影响得分,我们可以用filter语句重写: { "bool": { "must": { "match...将查询移到 bool 查询的 filter 语句中,这样它就自动的转成一个评分的 filter 了。 如果你需要通过多个不同的标准来过滤你的文档,bool 查询本身也可以被用做评分的查询。

76630
领券