SQL函数汇总

作者: apricoter | 来源:发表于2019-03-04 21:57 被阅读35次

查询

select * from table
where  A #单个条件
where  A and B #和
where  A or B  #或
where  (A and B) or (C and D)  #优先级
where  in (" "," “," ”)  #多个文本
where  A> 、>=、< 、<=、!=10000  #单个数值
where A between 10000 and 20000 #区间数值
where A like ‘%B%’  #模糊查询
where A not in、not like、not null  #否定

分组

select * from table
group by A  #将数据按组/维度划分
select * from table
group by A ,B #将数据按多维形式聚合
select A,count from table
group by A  #统计数量

除了count,还有max,min,sum,avg等函数,也叫做聚合函数

select A,count(distinct Id) from table
group by A #按A分组(不重复)
select if(A like ‘%B%’,1,0) from table  #逻辑判断

想统计各个城市中有多少数据分析职位,其中,电商领域的职位有多少,在其中的占比

select city,
count(distinct Id),
count(distinct(if(industryField like ‘%电子商务%’,Id,null)))
from table
group by city  #占比,count函数对0,1都计数,因此用null

第一列数字是职位总数,第二列是电商领域的职位数,相除就是占比

想找出各个城市,数据分析师岗位数量在500以上的城市有哪些

第一种,是使用having语句,它对聚合后的数据结果进行过滤。

select city,count(distinct Id) from table
group by city 
having count(distinct Id) >= 500

第二种,是利用嵌套子查询。

select * from (
    select city,count(distinct Id) as counts from table
    group by city ) as table1
where counts >= 500

排序

select * from table
group by A  
order by B  #将数据升序
select * from table
group by A  
order by B desc  #将数据降序

时间

select now()  #当前的系统时间,精确到秒
select date(now())   #当前日期

week函数获得当前第几周,month函数获得当前第几个月。其余还包括,quarter,year,day,hour,minute

时间加减法

select date_add(date(now()) ,interval 1 day)

改变1为负数,达到减法的目的

求两个时间的间隔

datediff(date1,date2)或者timediff(time1,time2)

通过salary计算数据分析师的工资
首先利用locate函数查找第一个k所在的位置。

select locate(“k”,salary),salary from table

然后使用left函数截取薪水的下限。

select left(salary,locate(“k”,salary)-1),salary from DataAnalyst

为了获得薪水的上限,要用substr函数,或者mid,两者等价。

substr(字符串,从哪里开始截,截取的长度)

薪水上限的开始位置是「-」位置往后推一位。截取长度是整个字符串减去「-」所在位置,刚好是后半段我们需要的内容,不过这个内容是包含「K」的,所以最后结果还得再减去1。

select left(salary,locate("k",salary)-1) as bottomsalary,
       substr(salary,locate("-",salary)+1,length(salary)-locate("-",salary)-1) as topsalary,
       salary from table
where salary not like "%以上%"

然后计算不同城市不同工作年限的平均薪资。

select city,workyear,avg((bottomsalary+topsalary)/2) as avgsalary from(
      select left(salary,locate("k",salary)-1) as bottomsalary,
            substr(salary,locate("-",salary)+1,length(salary)-locate("-",salary)-1) as topsalary,
            city,Id,workyear from table
       where salary not like "%以上%") as table1
group by city,workyear
order by city,avgsalary

查询出哪家公司招聘的岗位数最多
查询出O2O、电子商务、互联网金融这三个行业,哪个行业的平均薪资最高;
查询出各城市的最高薪水Top3是哪家公司哪个岗位。

JOIN


A Full Join B = A Left Join B + A Right Join B – A Inner Join B

相关文章

  • SQL必知必会读书笔记9

    汇总数据 聚集函数 我们经常需要汇总数据而不同把他们实际检索出来,为此SQL提供了专门的函数,使用这些函数,SQL...

  • SQL函数汇总

    查询 分组 除了count,还有max,min,sum,avg等函数,也叫做聚合函数 想统计各个城市中有多少数据分...

  • 04 - 聚合与排序

    聚合函数 聚合函数 通过 SQL 对数据进行某种操作或计算时需要使用函数。用于汇总的函数称为聚合函数或者聚集函数聚...

  • Mysql语法之汇总数据,聚集函数

    什么是SQL的聚集函数以及如何利用他们汇总表的数据。 一、聚集函数 我们经常需要汇总数据而不用把它们实际检索出来,...

  • 09-10章 汇总分组数据

    第9章 9.1 聚集函数 如果需要汇总数据而不是检索,SQL 提供专用函数,可用于检索数据,以便分析和报表生成。这...

  • SQL 聚合函数

    聚合函数用于汇总表的数据,比如求和、计数、求某列的平均值等等。SQL 中一共包含了 5 个聚合函数,这些聚合函数与...

  • [MySQL]MySQL中的汇总数据

    在sql语句中,有很多的汇总数据的函数。这些函数在其他的语言中都有这种自建的函数。很多都是直接可以去调用的。简单的...

  • Mysql 的数据汇总(九)

    本节将简单介绍 sql 的聚集函数以及如何利用它们汇总表的数据 聚集函数 运行在行组上,计算和返回单个值的函数 s...

  • MySQL GROUP BY和聚合函数

    聚合函数 使用sql的过程中有可能用到统计汇总的情况下就要使用聚合函数,常用的有5种。 count():计算表中的...

  • SQL Date 函数

    SQL Date 函数 标签(空格分隔): SQL SQLServer SQL Date 函数 SQL 日期 当我...

网友评论

    本文标题:SQL函数汇总

    本文链接:https://www.haomeiwen.com/subject/sfewuqtx.html