文库

PG递归查询

PG递归查询

八月 20, 2018 阅读 53 字数 699 评论 0 喜欢 1

distinct xxcount(distinct xx)的递归优化方法

 

当数据量大,count(distinct xx)结果会很慢,distinct结果数量较少时,可以使用递归方法优化。distinct结果多不适用。

 

如查询维修记录有多少家企业,查询速度比起count(distinct xx)快很多

 

with recursive skip as (  

  (  

    select min(t.companycode) as companycode from LCIPRepairRecord2017 t where t.companycode is not null  

  )  

  union all  

  (  

    select (select min(t.companycode) from LCIPRepairRecord2017 t where t.companycode > s.companycode and t.companycode is not null)   

      from skip s where s.companycode is not null  

  )  -- 这里的where s.companycode is not null 一定要加,否则就死循环了.  

)   

select count(companycode) from skip;  

 

 

 

参考

https://yq.aliyun.com/articles/39689

https://blog.csdn.net/wickedvalley/article/details/70717328










    相 关 文 章 返回顶部 上一篇 下一篇

  • postgresql增加连接数

    postgresql修改连接数,可以在postgres.conf里面进行修改max_conection,但是当max_conection过大时,就会报错。此时我把数据库连接数设置到2000,重启后错误信息可以在server.log里看到。这时需要修改系统内核配置。

    postgresql增加连接数
  • PG shared_buffer性能检测

    很多资料说这个缓存命中率不可低于99%,如果低于了99%,表明,cache效率太低了,需要增大shared buffer。总之了,当你的shared buffer命中率太低,比如60%,基本就需要检查下你配置的shared buffers是否太小了,导致你cache利用率如此之低。

    PG shared_buffer性能检测
  • PG车辆VIN码校验

    函数使用方法: select lcipcheckcarvin(‘VIN码’); 直接执行下面脚本,创建函数

    PG车辆VIN码校验
  • PG outputdata函数

    根据表名,打印出该表的insert语句。

    PG outputdata函数

粤ICP备18103437号-1