首页 > 试题广场 >

一个查询语句执行后显示的结果为:1班 802班 753班 N

[单选题]
一个查询语句执行后显示的结果为:
1班 80
2班 75
3班 NULL
,则最有可能的查询语句是()
  • SELECT AVG(成绩) FROM 成绩表 WHERE class<=3
  • SELECT AVG(成绩) FROM 成绩表 WHERE class<=3 GROUP BY class
  • SELECT AVG(成绩) FROM 成绩表 WHERE class<=3 order by class
  • SELECT AVG(成绩) FROM 成绩表 HAVING class <=3 GROUP BY class
where子句对被选择的列施加条件,
having子句对group by子句所产生的组施加条件。
SELECT column1, column2 FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2

编辑于 2016-02-28 14:05:12 回复(5)
select之后如果是聚合函数则group by 分组会显示null的结果,而order by不会显示null的结果
发表于 2016-03-19 21:39:55 回复(7)
having用在分组之后,
发表于 2015-11-01 22:31:29 回复(0)
1,group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面。本题select出来三行,必须有group by做分组。2,having是对where的补充,是对select出来的结果做过滤。3,聚合函数avg、max、min、sum 都是忽略null值的,本题出现的null应该是“”空的意思
发表于 2016-05-26 21:55:22 回复(0)
四个选项不够严谨,select子句里缺少class字段,应该是SELECT CLASS, AVG(成绩) from ...
发表于 2017-11-02 09:25:41 回复(0)
having :对分组后的语句进行过滤,举个例子就好了:
    select deptno,avg(sal) from emp group    by deptno having avg( sal ) > 2000;
当order by之后又要过滤了,加个having
    
发表于 2016-03-19 21:52:50 回复(0)
意思是3班有可能没有数据。
发表于 2016-01-21 09:45:32 回复(0)
order by 用于对结果集进行排序
group by 根据一个或多个列对结果集进行分组。返回结果,所依赖的列中元素不会重复
发表于 2015-11-11 15:26:54 回复(0)
炫头像
order by是按照某一列排序,group by 是进行分组
发表于 2015-10-31 17:55:58 回复(0)
其实这里的问题是,因为用了AVG函数,那就必须要用group by,不然会出现整个表的平均成绩,根本
不会出现一班,二班,三班的平均成绩。其次,group by分组会出现null的结果

编辑于 2017-05-03 20:54:20 回复(0)
Where用在分组之前 Having用在分组之后
发表于 2017-04-14 15:14:52 回复(1)
SELECT 之后如果是聚合函数则用GROUP BY,分组后会显示NULL的结果;而ORDER BY不会显示NULL的结果。
发表于 2017-03-25 00:30:02 回复(0)
sql语句执行顺序:from ,where , group by , having , select , order by , limit
发表于 2017-02-01 17:11:51 回复(0)
order by 是按表中某字段排列表中数据

group by 是按某些字段分类。
发表于 2016-11-26 08:42:38 回复(0)
SELECT 之后如果是聚合函数则用GROUP BY,分组后会显示NULL的结果;而ORDER BY不会显示NULL的结果。
发表于 2016-05-31 20:24:01 回复(0)

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

SQL HAVING 语法

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value
发表于 2016-03-20 19:16:04 回复(0)
grop by 会显示null的结果,而order by不会显示null的结果
发表于 2019-04-03 10:36:02 回复(0)
Having是对聚合后的结果进行过滤的作用
发表于 2016-08-29 16:13:03 回复(0)