postgresql - 同一张表中 COUNT 的 SUM

标签 postgresql count sum

我正在做很多我想在表格中显示的计数。我想在同一张表中显示所有计数的总和。

这是我得到的(简化 - 我有 6 个计数):

SELECT * FROM (SELECT COUNT() AS NB_book
        item as a1, metadatavalue as m1, metadatavalue as m12,
        WHERE m1.field_id = 64 (because I need that field to exist)
        AND m2.field_id = 66
        And m2. = book
        AND a1.in_archive = TRUE )
        (SELECT COUNT(
) AS NB_toys
        metadatavalue as m1, metadatavalue as m12,
         WHERE m1.field_id = 64 (because I need that field to exist)
        AND m2.field_id = 66
        And m2. = toys
         AND a1.in_archive = TRUE)
)

现在,我希望显示是这样的

------------表格------------
|NB_book | NB_玩具 |总对象 |
------------------------------
| 12 | 10 | 22 |

最佳答案

你想要的是:

SELECT
    sum(CASE WHEN condition_1 THEN 1 END) AS firstcount,
    sum(CASE WHEN condition_2 THEN 1 END) AS secondcount,
    sum(thecolumn) AS total
FROM ...

您的示例查询过于模糊,无法构建可用的内容,但这会给您思路。上面的条件可以是任何 bool 表达式。

如果您愿意,可以使用 NULLIF 而不是 CASE WHEN ... THEN ... END。我更喜欢坚持标准的 CASE

关于postgresql - 同一张表中 COUNT 的 SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24041580/

相关文章:

mysql - 带有计数的 SQL 选择查询

python - 使用列表列表查找所有加起来等于给定数字 python 的组合

python - PL/Python 与 Anaconda

c# - 使用 Npgsql/Postgres 进行 SQL 注入(inject)

c# - 在 C# 中计算文件行数

mySQL 查询组合列 count()

sql - 从异常中提取用户定义的错误消息

ruby-on-rails - 在 postgis 2.1 版中启用 Tiger Geocoder

objective-c - ios obj C 将字符串分隔成字符并添加字母

sql - 具有空值的外部连接表的累积和