当查询中存在group by子句时,select列表(或是having子句)中只能存在分组函数,或是出现在group by子句中的字段。
这里说的,“出现在group by子句中的字段”具体有两种形式出现:
1、select列表里直接出现一个以该字段名为列名的列,如:
select La from test group by La;
1、select列表里出现一个非分组函数的函数的列,如:
select La ,contact(La,La)from test group by La;
select La ,contact(La,‘two’)from test group by La;
select La ,contact(La,&tt)from test group by La;
注释:
当查询中存在group by子句时,非分组函数的参数值只能是from子句里各个表中出现在group by子句中的字段(变量)。而from子句里各个表中不出现在group by子句中的字段(变量)则不能为非分组函数的参数值,此时。而其他不是属于在表定义的变量(即表的列)的的变量,如上述的替换变量&tt,则可以为非分组函数的参数值。常量,可以为非分组函数的参数值,此时。总之,当查询中存在group by子句时,只有from子句里各个表中不出现在group by子句中的字段(变量)不能为非分组函数的参数值。
当查询中存在group by子句时,分组函数,其参数值可以来自from子句里各个表中不出现在group by子句中的字段(变量)。
当查询中存在group by子句时,select列表中出现在group by子句中的字段组合值都是不重复的一条。例如,
<