我有以下查询:
SELECT "domain", site_domain, pageurl, count (*) FROM impressions WHERE imp_date > '20150718' AND insertion_order_id = '227363'
GROUP BY 1,2,3
我理解这是一个错误构思的查询,但运行时间超过30分钟,只需在没有count
和groupby
的情况下提取数据只需20秒。
我的问题是,是否可能创建的行数比原始数据集多?
谢谢!
答案 0 :(得分:0)
当两个条件为真时,聚合查询返回更多行的唯一时间是原始数据集:
group by
。在这种情况下,聚合查询返回一行;没有聚合,你就没有行。
否则,GROUP BY
将行组合在一起,因此结果不能大于原始数据。
当您比较返回结果集所花费的时间时,您需要区分时间到第一行和时间到最后一行。当您执行简单的SELECT
时,您倾向于测量返回的第一行的时间。但是,group by
需要在返回任何行之前处理所有数据(在大多数情况下)。因此,最好将时间与简单查询返回的 last 行进行比较。