• Oracle-一张表中增加计算某列值重复的次数列,并且把表中其他列也显示出来,或者在显示过程中做一些过滤


    总结:

    1、计算某列值(数值or字符串)重复的次数

    select 列1,count( 列1 or *) count1  from table1 group by 列1

    输出的表为:第一列是保留唯一值的列1,第二列是count1列的统计表。

    问:那怎么把其他列信息也都显示出来呢?可以参考:http://www.myexception.cn/oracle-develop/1767413.html  我这里自己做一个总结,进入下一步。
    2、一张表中增加一列计算某列值重复的次数列,并且把表中其他列也显示出来,或者在显示出来的过程中做一些过滤性处理
    (1)如果,列1跟剩下的列之间信息都是一对一,那直接用max() or min()函数去一一处理剩下列就可以完全显示剩下列信息。

       select count(列1 or *) count1,max(列2)  列2,max(列3)  列3,max(列4)  列4  from table1 group by 列1

     (2)如果,列1跟剩下的列之间信息都是一对多,那max() or min()就会实现保留最大or最小那个(这两个函数:可以处理数值、时间早晚、日期大小、也能处理字符串会有输出不报错)

    3、如果列之间是一对多,又要怎么实现“既实现计算统计功能,又完整显示剩余列信息呢?”

    select SS.*,TT.*  from table1 SS  left join (select 列1,count( 列1 or *) count1  from table1 group by 列1) TT on SS.列1=TT.列1

    4、再说一下max() or min() 函数的用的比较好的功能

    (1)强大过滤功能:按过滤列的先后顺序,去实现关联性过滤功能,类似漏斗一层层过滤

    (2)还可以结合其他函数使用,例如,concat()、substr()

    粘贴一下例子:

    1、group by 实现保留TEL_DLR值唯一,max() min()实现过滤功能

  • 相关阅读:
    5.基于文件验证的vsftp虚拟用户
    linux系统用户登录ftp
    4.ftp用户禁锢
    原码,反码,补码
    8map
    命令jhsdb jmap heap pid 1 报错
    20211112_mysql_8.0docker部署踩坑
    Windows 下 tail 查看日志命令工具分享
    前后端java+vue 实现rsa 加解密与摘要签名算法
    优化TTFB 至500ms内
  • 原文地址:https://www.cnblogs.com/Formulate0303/p/12033876.html
Copyright © 2020-2023  润新知