数据库中常见关键字,函数理解

JOIN  用途  SELECT  

                  A.ID_NO,

                  A.NAME,

                  B.SCORE

          FROM  TMP_INFO_P A

          LEFT JOIN TMP_S_SCORE B ON A.ID_NO=B.ID_NO

上面的SELECT中得到的结果集是 3个字段,我们从A中取了2个字段 我们通过A和B的共同字段ID_NO来关联。从这个例子我们可以得出,JOIN B表的目的是为了让最后的结果集中扩展了一列SCORE。

其中 LEFT JOIN 表示,以A表为主表,通过ID_NO关联B表。即A表中所有的ID_NO都会展示在最后的结果集中,如果A中的ID_NO B中没有匹配上则后面的 B.SCORE 为空。

       RIGHT JOIN  则与LEFT JOIN 相反,RIGHT JOIN 会以后面的表为主表,通过关联字段进行匹配。

以上是通过JOIN方式实现最后结果集列的拓展,SQL要想实现行数的增加是通过union实现的,

SELECT  ID_NO ,NAME,SCORE TMP_INFO_P1

UNION ALL

SELECT  ID_NO AS ID_NO1 ,NAME,SCORE TMP_INFO_P2

我们通过as改了 下面ID_NO的别名,但是最后结果集中会展示三列,三列的列名是ID_NO ,NAME,SCORE 即 最后结果是以第一个子结果集中的字段为准的。

GROUP BY 是 分组函数,在很多时候要汇总

SELECT

 DIS_NAME,

CHANNEL_NAME,

SUM(PHONE_NO) CYS

FROM DTL_FZ_MX

GROUP BY 

    DIS_NAME,

    CHANNEL_NAME

在使用聚合函数(sum,max,min,count等)后group by后面要包含所有为聚合字段。其实这里多结合一些实际业务场景能理解得更深刻。

ROW_NUM()

在SQL数据处理时,经常要用到剔重,我们这里常见的有distinct 该关键字是针对最后结果集的全部字段来考虑的,即最后结果集的全部字段都重复了才算一条重复数据,而在复杂的数据环境中我们要通过某(几)个字段来剔重的时候则使用ROW_NUM(partition BY ID_NO ORDER BY OP_TIM DESC NULLS LAST) RN进行剔重(这里只是添加了行号) 后面限制RN=1。这里partition即指定了这结果集中的唯一一条记录是根据ID_NO来确定的。当然里面可能存在多条的情况,所以还可以结合排序来让自己希望得到的记录序号排在前面,最后限制行号RN=1。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值