欢迎访问本站!

首页头条正文

Allbet手机版下载(www.aLLbetgame.us):SQL用了两年多,分享2个最常用的小技巧

admin2021-07-0931

欧博亚洲注册

欢迎进入欧博亚洲注册(www.aLLbetgame.us),欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

,

导读:

SQL是所有数据从业者必须打牢的基本功之一,扎实的SQL查询和适当的调优技巧是磨练SQL能力的两大主要准则。小我私人曾经专门破费过很多多少时间用于提升SQL能力,时代也刷了大量的SQL问题

,在这时代也不停试探总结了一些小技巧,今天本文就来其中的两个,也差不多是一样平常使用中最为高频的两个了。作者 | luanhz 责编 | 欧阳姝黎

为了配合演示这两个小技巧,本文所使用示例数据如下,实在这也是前几天推文中所使用的数据:

示例学天生绩表

Allbet手机版下载

欢迎进入Allbet手机版下载(www.aLLbetgame.us),欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

SQL的数据类型隐式转换

许多编程语言都限制了数据类型,例如在Python中字符串"0"和数值0是不相等的,布尔型True和数值1也是不相等,但在SQL中则否则,其内置了数据类型隐式转换功效,以是执行查询 select "0"=0 会返回1的,这既说明字符串"0"和数值0是相等的,也说明SQL中的布尔值会自动转换为1或0。

行使这一小技巧,在实现许多统计指标时就可以有许多小技巧。例如盘算学天生绩表中每名学生的成就的优异率,即成就在90分以上的科目与本人总科目的占比。为实现这一查询,通例的操作是划分统计每名学天生绩在90分以上的科目数目和总科目,然后举行相除获得占比。

现实上,在给出前述小例子的基础上,这一需求可以如下实现:

其中,在每名学生的分组中,条件判断score>=90返回一组0或1的效果,对这组0/1取值举行求均值操作,即等价于求成就>=90的科目占比。

巧妙运用if函数和

SQL内置了众多函数,但对于一名程序员而言if函数应该尤为常见和常用;另一方面,值也是SQL中一个神奇的存在,它有两大特征:一是任何值与的任何盘算都市获得值;二是在任何聚合函数中,值都不介入盘算(例如,count计数就是查找以外的效果数目)。配合使用if函数和值,有时也可实现很好的效果。

例如,仍然针对以上学天生绩表,需要划分统计每名学天生绩在80分以上成就的平均值,也就是若是成就>=80则介入最后均值盘算,否则不介入。配合if函数和的特征,可以如下优雅的实现:

网友评论