gpt4 book ai didi

mysqli 使用 WHERE 和 GROUP BY 进行计数

转载 作者:行者123 更新时间:2023-11-29 17:54:34 25 4
gpt4 key购买 nike

我正在尝试获取特定日期的记录数量。问题是,当日期没有记录时,它不会显示日期。

$asksome= mysqli_query("
SELECT COUNT(worker_id) AS amount, problem.datter AS datum
FROM problem
WHERE worker_id = $idmed
GROUP BY datter"
);

结构如下:

worker_id | datter    | note
1 |2018-02-25 |
1 |2018-02-26 |
3 |2018-02-25 |

这是我正在使用的查询。我希望查询显示日期,即使 COUNT 为 0。我的意思是我希望结果如下所示:

count result | date
0 | 2018-02-24
2 | 2018-02-25
1 | 2018-02-26
0 | 2018-02-27

- - 对于发现这篇文章不知道该怎么做的人:我通过制作另一个仅包含我想要检查的特定日期的表格来解决我的问题。我使用了以下查询:

SELECT weeks.week_id AS datum, COUNT(problem.datter) AS amount
FROM weeks
LEFT JOIN problem ON problem.datter = weeks.week_id
GROUP BY weeks.week_id

最佳答案

您应该明确sql如何处理计数为0时的情况。一般来说,当使用SQL的SUM()COUNT()以及GROUP BY 语句中,从不输出 0。这是因为,当计数为 0 的记录不存在时,GROUP BY 子句无法进行分组。

为此,您可以使用 COALESCE 表达式。

您可以在此处查看其文档:https://learn.microsoft.com/en-us/sql/t-sql/language-elements/coalesce-transact-sql

因此在您的示例中,sql 查询应该是:

SELECT COALESCE (SELECT COUNT(worker_id) AS amount, problem.datter AS datum
FROM problem
WHERE worker_id = $idmed
GROUP BY datter"), 0);

关于mysqli 使用 WHERE 和 GROUP BY 进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48979602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com