【发布时间】:2018-10-08 13:22:41
【问题描述】:
我正在尝试在 SQL 中重新创建 MS Access 查询,以下是转换为在 SQL 中运行的 Access 查询
SELECT Column1
,Column2
,Column3
,Count('x') AS CountX
FROM [SchmaName].[SQLView]
WHERE ("SomeWhereStatement")
GROUP BY Column1, Column2, Column3
HAVING Count('x')>1;
我很困惑的是
,Count('x') AS CountX
和
HAVING Count('x')>1;
X 不是来自已创建的 SQLView,当我运行上述命令时,它将返回一条记录,其中 1 - 3 列为空,CountX 列为 12896。我预计这将返回大约 4285 条记录,并且我怀疑我不是这个伯爵的原因。关于这个计数实际上在做什么有什么建议吗?
【问题讨论】:
-
使用
count('x')与使用count(1)或count(*)没有什么不同——它只是计算文字字符串(尽管这是一种非常奇怪的方式)。您确定您有分组依据的其他列的值吗?听起来他们都是null,因此聚合成一个结果。样本数据和预期结果会有所帮助。 -
查询似乎在寻找重复项
HAVING Count('x')>1;
标签: sql sql-server ms-access