首页 > 试题广场 >

在SQL中语法规范中,having子句的使用下面描述正确的是

[不定项选择题]
在SQL中语法规范中,having子句的使用下面描述正确的是:(       )
  • having子句即可包含聚合函数作用的字段也可包括普通的标量字段
  • 使用having的同时不能使用where子句
  • having子句必须于group by 子句同时使用,不能单独使用
  • 使用having子句的作用是限定分组条件
  • Having子句和where子句是等同的
  • 如果select语句中没有聚合函数的使用,就不能使用having子句
  • where子句 = 指定行所对应的条件
  • having子句 = 指定组所对应的条件
  • D中是Group by才用来分组的,group by的作用是限定分组条件,而having则是对group by中分出来的组进行条件筛选。
  • 所以用having就一定要和group by连用,且是先group by XXX 再having XXX,用group by不一有having(它只是一个筛选条件用的)
发表于 2019-10-17 16:06:15 回复(0)
A F:having子句即可包含聚合函数作用的字段也可包括普通的标量字段,实施上所有的where子句都可以用having代替
B、C、E:where子句是过滤行;having子句是过滤分组。where在数据分组之前使用,having在数据分组之后使用,可以同时使用。
D:group by 子句是限定分组条件的,having是过滤分组的
发表于 2020-03-26 20:46:03 回复(8)
聚合函数是 max min avg 等
发表于 2020-03-27 22:48:25 回复(3)

解析:HAVING子句中能够使用三种要素:常数,聚合函数,GROUP BY子句中指定的列名(聚合建)

用having就一定要和group by连用, 用group by不一有having(它只是一个筛选条件用的)

有having的地方一定有group by,但group by不是聚合函数

所以没有聚合函数,having可以和group by一起使用

常见的聚合函数:count(),avg(),sum(),max(),min()

发表于 2020-06-08 18:28:18 回复(0)

having可单独使用,如果跟groupby一起使用,则作用于分组结果集,否则作用于全表

编辑于 2019-10-06 15:25:03 回复(4)
F项MySQL跟oracle是不一样的,mysql 支持直接用having 但是 oracle必须要有聚合函数
发表于 2021-01-25 11:05:09 回复(0)
GROUP BY才是来限定分组条件的,having是用来选择满足条件的组的,所以D错误
发表于 2020-10-13 21:05:13 回复(1)
答案:A、C
A:正确。
B:错误。
C:正确。HAVING 是用来过滤分组的,所以要与group by 自居同时使用。
D:错误。having是过滤分组。分组条件是group by限定的
E:错误。where是过滤行的。
F:错误。having子句与聚合函数无关。

补充:

DQL
查询语法
数据库查询遵循条件在前的原则
执行顺序:
分组查询语法:


发表于 2022-02-08 12:36:16 回复(1)
select 属性
    from 表名
    where 条件(表中原有)
    group by 属性   
    having 条件(分组后)
    order by 属性 (按什么属性排序 asc升序默认,desc降序)
发表于 2021-10-18 21:01:08 回复(0)
C不对
发表于 2021-02-28 21:59:25 回复(0)
SELECT DEPTNO , AVG(SAL)
FROM EMP
GROUP BY DEPTNO
HAVING AVG(SAL) = (SELECT MAX(AVG(SAL))
                        FROM EMP
                        GROUP BY DEPTNO
                        );
发表于 2020-08-07 16:50:29 回复(0)
C 答案是错误的, having 可以单独使用 
譬如 SELECT union_id FROM person HAVING union_id>1379  这个就可以单独执行

where 后面要跟的是数据表里的字段,where针对数据库文件的发挥作用。

而having只是根据前面查询出来的结果集再次进行查询,因此having是针对结果集发挥作用。


编辑于 2020-06-30 16:54:09 回复(0)
关于D项:
这句话不完全正确。HAVING 子句的作用是限定分组后的结果集中的条件。它通常与 GROUP BY 子句一起使用,用于对分组后的数据进行筛选。

具体来说:

- 使用 GROUP BY 子句将数据分组成不同的组。
- 然后,HAVING 子句用于筛选这些分组,只保留符合特定条件的组。
- 最后,只有满足 HAVING 子句中指定条件的分组中的数据才会出现在结果集中。

所以,HAVING 子句的作用不是限定分组的条件,而是限定分组后的结果的条件。这有助于你筛选聚合数据,以满足特定的需求。

发表于 2023-09-06 09:30:13 回复(0)
having和group by 区别
having是对于group by分组后结果进行筛选,group by是进行分组
where 子句和 having子句区别
where是对查询进行限制条件,having只是对于group by后的结果进行限制
where后不可以加聚合函数,但是having可以添加聚合函数
发表于 2020-11-07 11:06:20 回复(1)
group by是做限定作用,having是做筛选
发表于 2024-03-05 01:23:20 回复(0)

使用where by的作用是限定分组条件
没有聚合函数【count(),avg(),sum(),max(),min()等】,having可以和group by一起使用

发表于 2023-11-30 20:06:10 回复(0)
C选项是错的,在某些数据库系统中,你可以在没有 GROUP BY 子句的情况下使用 HAVING 子句,但这是一个不太常见的用法,并且通常是特定数据库的扩展。这种用法允许你筛选整个结果集的行,而不仅仅是聚合组。
发表于 2023-09-18 16:52:04 回复(0)
B、C是sql server不能这样吗

发表于 2023-07-20 15:18:53 回复(0)
having用来过滤分组,where用于过滤行,因此不等同,e错误
发表于 2023-04-10 13:36:34 回复(0)
where作用于基本表或视图,从中选择满足条件的元组。 having作用于组,从中选择满足条件的组。
发表于 2023-02-27 10:07:58 回复(0)