在我的一些SQL代码中,有一个简单的部分:
(SELECT
t1.col1,
...,
t1.coln
FROM
(SELECT
t2.col1, ..., t2.coln
FROM
t2location
) t1
GROUP BY
t1.col1,
...,
t1.coln
) t0我在想“哇,这个GROUP BY在这里做什么,它只是分类”。因此,我删除了它,但随后它对结果表进行了彻底的更改。
该表,t0随后与另一个具有相似组的表(具有较少的数据,但相同的列)连接。
我的问题是:
改变数据的
GROUP BY是做什么的?
数据集非常大,我无法准确地指出代码到底发生了什么。
发布于 2015-07-15 17:52:39
您似乎混淆了GROUP BY和ORDER BY。按聚合对数据进行分组,因此通常与聚合函数(例如SUM或AVERAGE )一起使用。通过选择特定列中的disctict值并将它们组合在一起,“按工作分组”。虽然GROUP可能确实对数据进行了排序,但它没有得到保证。订单是用来分类的。
发布于 2015-07-15 17:52:51
它基本上是在做SELECT DISTINCT t1.col, ..., t1.coln
例如:
col1 | col2 | col3
---------|--------|------
some | thing | cool
some | thing | cool
some | thing | cool
some | thing | else
wow | thats | cool没有GROUP BY的查询将返回五行。使用GROUP BY将返回三行:类似于第1行、第4行和第5行的内容
https://stackoverflow.com/questions/31437535
复制相似问题