首页 > 试题广场 >

SQL查询语句中where、group by、having

[单选题]
SQL查询语句中where、group by、having 这些关键字区别和用法总结错误的是( )
  • HAVING在查询语句中必须依赖于GROUP BY
  • WHERE 子句用来限制 select 语句从表中指定选取得行
  • GROUP BY 子句用来分组 WHERE子句的输出结果集
  • HAVING 子句用来从分组的结果中筛选列
推荐
HAVING 子句用来从分组的结果中筛选行,不是列,列是在select中选择输出的
编辑于 2017-03-18 09:34:09 回复(1)
1.having只能用在group by之后,对分组后的结果进行筛选,筛选行(即使用having的前提条件是分组)。
2.where肯定在group by 之前
3.where后的条件表达式里不允许使用聚合函数,而having可以。


发表于 2017-08-05 13:30:46 回复(0)
cct头像 cct
Select语句完整的执行顺序: 1、from子句组装来自不同数据源的数据; 2、where子句基于指定的条件对记录行进行筛选; 3、group by子句将数据划分为多个分组; 4、使用聚集函数进行计算; 5、使用having子句筛选分组; 6、计算所有的表达式; 7、使用order by对结果集进行排序。 8、select 集合输出。 飞梦天07210213  2014-10-27 1.查询中用到的关键词主要包含六个,并且他们的顺序依次为  select--from--where--group by--having--order by  其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序  与sql语句的书写顺序并不是一样的,而是按照下面的顺序来执行  from--where--group by--having--select--order by,  from:需要从哪个数据表检索数据  where:过滤表中数据的条件  group by:如何将上面过滤出的数据分组  having:对上面已经分组的数据进行过滤的条件  select:查看结果集中的哪个列,或列的计算结果  order by :按照什么样的顺序来查看返回的数据  2.from后面的表关联,是自右向左解析的  而where条件的解析顺序是自下而上的。  也就是说,在写SQL文的时候,尽量把数据量大的表放在最右边来进行关联,  而把能筛选出大量数据的条件放在where语句的最下面。 where 最先执行,然后按group by分组,之后满足having条件的组被留下,执行select筛选。 热心网友 2013-5-10
编辑于 2017-09-06 08:41:02 回复(0)
增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
GROUP BY  HAVING 和函数经常组合使用
发表于 2016-12-07 11:11:25 回复(0)
筛选列哪里错了……求解答 
发表于 2016-12-07 16:42:32 回复(5)
HAVING字句用来从GROUP BY 的各个分组中筛选分组,筛选的是分组而不是行
发表于 2017-08-23 15:23:29 回复(0)
倒是觉得C错
select * from table group by column 没毛病啊
发表于 2017-01-05 16:38:11 回复(2)
HAVING 子句用来从分组的结果中筛选行
发表于 2016-11-30 17:58:04 回复(0)