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 结果中选择的行的主要内容,如果未能解决你的问题,请参考以下文章