SQL 结果中选择的行

Posted

技术标签:

【中文标题】SQL 结果中选择的行【英文标题】:Rows Selected in SQL Results 【发布时间】: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 条款。您的查询返回分组依据字段的所有计数。这就是为什么你得到的结果低于你的预期。 【参考方案1】:

使用 COUNT(1) over(partition by.....) 这将防止 Rollup 与 group by 关联

【讨论】:

以上是关于SQL 结果中选择的行的主要内容,如果未能解决你的问题,请参考以下文章

SQL 选择带有 FREE TEXT 的结果/返回出现次数较多的行

如何检查当前行是不是是sql查询中最后选择的行?

选择数据库中所有表的行数

SQL Server选择查询多个结果

我无法将 SQL 选择查询结果转换为位

SQL中如何显示COUNT结果为0的行