1. 有表如图:
易知执行如下命令:
SELECT name FROM test GROUP BY name;
结果如图:
2. 命令执行过程创建中间表表3:
对于表3,SELECT name 是肯定没错的,因为name只有一个;
而SELECT number 则会发生错误,因为在一个group里有多个id;
SELECT name FROM test GROUP BY name;
SELECT number FROM test GROUP BY name; //会报错
但在LEETCODE的题目里,2是被允许的,返回的id是该分组按顺序第一个。
3. 对于这种有多个数据的,应该使用聚合函数,聚合函数就用来输入多个数据,输出一个数据的。
SELECT name,SUM(number) FROM test GROUP BY name;
结果如图:
4. 同理,group by 多个字段:
执行如下命令:
SELECT name,SUM(id) FROM test GROUP BY name,number;
结果如下: