SQL学习第二阶段

group by语句

group by语法

select column_name,function(column_name)
from table_name
group by column_name;

group by语句,根据一个或者多个列对结果集分组,分组的列上使用聚合函数count、avg、sum、max、min

聚合函数对一组值操作,返回单个值,也被称为组函数。

count() 如果参数是列名称,忽略null。如果参数是*或者常量参数,则包含null。

avg() 函数会忽略null,实际应用中判定是否需要对null做处理。

常用于替换null值的函数,coalesce(column_name,0) 此处coalesce函数将column_name中null值替换为0,也可以替换为其他数值。

聚合函数可以应用于select、having子句中。having只能放在group by之后。

聚合函数不可以用于where语句中,因为where是筛选逐条的记录

窗口函数

将数值10,9,9,8从大到小排序,三种排序函数结果如下

rank()  排序情况1 2 2 4

dense_rank() 排序情况1 2 2 3

row_number() 排序情况 1 2 3 4

窗口函数是对where或者group by子句处理后的结果操作,原则上只用于select子句中。

function()over(partition by [分组字段] order by [排序字段] asc/desc 
rows/range between 起始位置 and 结束位置)


#current row 边界是当前行
#unbounded preceding 边界是分区中的第一行
#unbounded following 边界是分区中的最后一行
#expr preceding 边界是当前行减去expr的值
#expr following 边界是当前行加上expr的值。rows是基于行数,range是基于值的大小

union拼接俩select结果

只使用union,则拼接结果去除重复记录,效果和使用union distinct一样;如果使用union all则结果包含重复记录。

union的第二个select语句,不能使用括号括起来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值