我遇到了一个查询,该查询由
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/