首页 > 试题广场 >

在 SELECT 语句中使用 GROUP BY SNO 时,

[单选题]
在 SELECT 语句中使用 GROUP BY SNO 时,SNO 必须()。
  • 在 WHERE 中出现
  • 在 FROM 中出现
  • 在 SELECT 中出现
  • 在 HAVING 中出现
why?
发表于 2018-11-23 17:36:08 回复(1)
首先回顾一下执行顺序:
from:定位到相应的表
where:定位到符合条件的行
group by-->having(可以进一步定位):将这些行按照某个字段分组(比如一个学生选修了多门课,我们求每个学生的部分,就要按照学号进行分组)
select:对求出的分组进行投影出相应的列
order by以及其它limit进行输出。
----------------------------------------
可以看到,如果select中没有group by中的那个划分标准,那么由group by这个执行下所得到的会是多个被分割的表。而我们select所得到的应该是一张二维表,即我们需要在select中投影这个列。然后可以附加一些统计信息(如SUM等),当然通常也是这么用的。
---------------------------------------
再看题目,from毫无道理,where只是取出所有信息暂时还不分组(而且条件还可能用的是其它的区分标志),select如果不包含group by则得到的是多个分组(与select所得到的是一张二维表的道理不符),having,是对这个分组进行进一步条件规划(比如数量大于几的)也不必出现group by的分组标准。
发表于 2019-03-04 16:10:12 回复(0)
C
select 
    x1,x2,x3 as sno
from table
group by sno

sno不一定在from中 可能是table某个或某些变量变换而来
发表于 2018-01-09 22:54:09 回复(1)
C
发表于 2018-01-09 13:28:41 回复(0)