首页 > 数据库 > mysql教程 > 如何高效地统计 PostgreSQL 中的条件出现次数?

如何高效地统计 PostgreSQL 中的条件出现次数?

Mary-Kate Olsen
发布: 2025-01-24 06:21:10
原创
432 人浏览过

How Can I Efficiently Count Conditional Occurrences in PostgreSQL?

PostgreSQL条件计数:优化方法

在数据库表中统计数据出现次数时,条件语句可能会显得冗长。幸运的是,PostgreSQL 提供了便捷高效的解决方案。

FILTER聚合选项

对于PostgreSQL 9.4及更高版本,利用FILTER聚合选项可获得最佳效率:

<code class="language-sql">SELECT category
     , count(*) FILTER (WHERE question1 = 0) AS zero
     , count(*) FILTER (WHERE question1 = 1) AS one
     , count(*) FILTER (WHERE question1 = 2) AS two
FROM   reviews
GROUP  BY 1;</code>
登录后复制

简洁的语法

如果简洁性是您的首要任务:

<code class="language-sql">SELECT category
     , count(question1 = 0 OR NULL) AS zero
     , count(question1 = 1 OR NULL) AS one
     , count(question1 = 2 OR NULL) AS two
FROM   reviews
GROUP  BY 1;</code>
登录后复制

交叉表查询

对于处理大型选项列表并追求更高性能,请考虑使用crosstab()函数:

<code class="language-sql">SELECT * FROM crosstab(
     'SELECT category, question1, count(*) AS ct
      FROM   reviews
      GROUP  BY 1, 2
      ORDER  BY 1, 2'
   , 'VALUES (0), (1), (2)'
   ) AS ct (category text, zero int, one int, two int);</code>
登录后复制

以上是如何高效地统计 PostgreSQL 中的条件出现次数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板