我遇到了一个查询,该查询由

select concat(21*floor(diff/21), '-', 21*floor(diff/21) + 20) as `range`,     count(*) as
`number of users` from new_table group by 1 order by diff;


group by 1到底是什么意思?

最佳答案

假设您有一个选择:

SELECT name FROM employee GROUP BY 1;


无论如何,它将始终按select中给定的第一列分组。
在这种情况下,列“名称”被分组。

因此,如果我们将上述声明替换为:

SELECT department FROM employee GROUP BY 1;


现在,我们将部门分组,而不必在分组依据中更改“ 1”。

编辑:(按斯图尔特的要求)

如果我们在“雇员”表中有以下数据:

-- name --
Walt
Walt
Brian
Barney


一个简单的选择将交付上面的所有行,而“ group by 1”将导致一个Walt行:

与group by一起输出:

-- name --
Walt
Brian
Barney

关于mysql - 当我们在SQL查询中使用“group by 1”时,这是什么意思,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22538536/

10-14 19:17
查看更多