You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL:如何在同一视图统计作者发文量与已通过文章数

合并统计查询的解决方案

没问题,你可以用条件聚合把两个统计逻辑合并到一个SQL查询里,一次性得到每个作者的总发文数和已通过文章数,不用分开查询再手动合并。下面是具体实现方法:

核心查询语句

SELECT 
    author AS AUTHOR,
    COUNT(*) AS TEXTS,
    COUNT(CASE WHEN approved = 'OK' THEN 1 END) AS TEXTSAPPROVED
FROM tb_author
GROUP BY author
ORDER BY author;

逻辑解释

  • COUNT(*):统计每个作者分组下的所有记录数,也就是总发文数。
  • COUNT(CASE WHEN approved = 'OK' THEN 1 END):通过CASE表达式筛选已通过的记录——只有当approved='OK'时返回1,否则返回NULL;而COUNT函数会自动忽略NULL值,这样就精准统计出了每个作者的已通过文章数。

你也可以用SUM函数实现同样效果,写法更直观:

SELECT 
    author AS AUTHOR,
    COUNT(*) AS TEXTS,
    SUM(CASE WHEN approved = 'OK' THEN 1 ELSE 0 END) AS TEXTSAPPROVED
FROM tb_author
GROUP BY author
ORDER BY author;

这里SUM会把符合条件的记录加1,不符合的加0,最终结果和COUNT方式完全一致,选你习惯的写法就行。

创建视图

如果需要把这个统计结果保存为视图,只需在查询前加上CREATE VIEW语句:

CREATE VIEW author_text_stats AS
SELECT 
    author AS AUTHOR,
    COUNT(*) AS TEXTS,
    COUNT(CASE WHEN approved = 'OK' THEN 1 END) AS TEXTSAPPROVED
FROM tb_author
GROUP BY author
ORDER BY author;

之后直接查询这个视图就能快速获取统计数据了。

内容的提问来源于stack exchange,提问作者robert_gonzalez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:18:39