继续计算所有文本值,而不是我在 SQL 中提供标准

Keeps counting all the text values instead of me providing a criteria in SQL

我有一个非常简单的查询,从决策列中计算原因取消的数量。它不断计算列中的所有文本值,而不仅仅是导致取消。

SELECT Marketics.Case, Count(Marketics.Decision) AS CountOfDecision
FROM Marketics
GROUP BY Marketics.Case
HAVING Count(Marketics.Decision="Cause Cancel");

问题是您的 having 子句没有实际比较。它只是说有 count()。他们都有一个计数...所以,它返回正确。

现在,如果您的目标是生成一个带有案例编号的结果,即所有决策除外 "Cause Cancel" 的决策计数,那么您需要使用 where 子句,而不是 having 子句。 having 子句将简单地过滤任何没有至少一个 "cause cancel" 决定的案例。

当然,这假设允许带有隐式 where 子句的 count(),这是我以前从未见过的……但我来自 Microsoft SQL 背景。

SELECT Marketics.Case, Count(Marketics.Decision) AS CountOfDecision
FROM Marketics
GROUP BY Marketics.Case
HAVING Count(Marketics.Decision="Cause Cancel") > 0;

我想你想要一个 WHERE 子句而不是 HAVING 子句:

SELECT Marketics.Case, Count(Marketics.Decision) AS CountOfDecision
FROM Marketics
WHERE Marketics.Decision = "Cause Cancel";
GROUP BY Marketics.Case