【发布时间】:2018-01-19 09:04:28
【问题描述】:
我正在运行一个简单的查询来按某些列进行分组。我使用的文件有 99,000 行。执行查询后,它说它们只有 72,979 行。此外,在整个结果网格中(请参阅结果屏幕截图中的第 47 行),它会显示选定的行数。我的查询是否省略了这些行?如果是这样,我该如何包含它们?
谢谢。
use [OMNI Digital]
select GL_PERI, EVENT, EVT_PRICE, TRANS_AMT, TRAFFIC_PROG, CONTRACT,
EVENT_DESC, DELIV, FMT, BUY_OR_CREDIT, Count(ACCOUNT)
from Duplicate_2013006
group by GL_PERI, EVENT, EVT_PRICE, TRANS_AMT, TRAFFIC_PROG,
CONTRACT, EVENT_DESC, DELIV, FMT, BUY_OR_CREDIT
结果截图
【问题讨论】:
-
为什么在 GROUP BY 子句中包含 ACCOUNT?另外,DATE_BILLED 和 DATE_INGEST 不在您的 SELECT 中?
-
避免使用两个数据库标签,因为它是不同的。要么是mysql,要么是sql
-
由于 GROUP BY 子句,只有 72,979 行。 GROUP BY 将合并/分组任何完全相同的行,并且每个您在 GROUP BY 中指定的列的不同值仅返回 1 个结果。更改列,看看会发生什么
-
最好包含一些示例数据和预期结果,而不是提供查询。
-
我同意@matt 这是因为
group by条款。您的查询返回分组依据字段的所有计数。这就是为什么你得到的结果低于你的预期。
标签: mysql sql sql-server sql-server-2008