php - 为什么这两个 Count 返回相同的数字?

标签 php postgresql count

$SQL = "SELECT pc.dist_id, pc.route, pc.types,
        COUNT( pc.types = '$type' ) total,
        COUNT( pc.types = '$type' AND pc.options = '1') callbacks

        FROM per_call pc
        WHERE pc.types = '$type'
        GROUP BY pc.dist_id, pc.route, pc.types
        ORDER BY pc.dist_id, pc.route";

简而言之,我想我是在问 COUNT 如何与 () 内的多个列一起使用。

最佳答案

Count 也可以工作:

SELECT pc.dist_id, pc.route, pc.types,
COUNT( CASE WHEN pc.types = '$type' THEN 1 END) total,
COUNT( CASE WHEN pc.types = '$type' AND pc.options = '1' THEN 1 END) callbacks

FROM per_call pc
WHERE pc.types = '$type'
GROUP BY pc.dist_id, pc.route, pc.types
ORDER BY pc.dist_id, pc.route

注意:它之所以有效,是因为 COUNT 返回非 NULL 值的数量,而 CASE 具有默认的 ELSE NULL ...

关于php - 为什么这两个 Count 返回相同的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13994911/

相关文章:

php - 如何在 PHP 中启用 pcntl(同时使用像 Symfony 2 这样的框架)

php - MySQL查询产品属性表

PostgreSQL SQLSTATE[42P18] : Indeterminate datatype with PDO and CONCAT

XSLT 组计数

mysql - 将 6 个项目加在一起得出总数,但不要将它们的值加在一起

php - 使用 like 和通配符过滤集合

arrays - Postgres 中的拼接数组

python - Django - 为整个 QuerySet 跟踪外键关系 "backward"

database - API 平台 - 处理大数据库的分页

php - EXEC 功能未按预期方式工作