设有一个关系emp-sales(部门号,部门名,商品编号,销售数),查询各部门至少销售了5种商品或者部门总销售数大于2000部门号、部门名及平均销售数SQL语句如下:SELECT部门号,部门名,AVG(销售数)AS平均销售数FROM emp-salesGROUP BY(请作答此空)HAVING( ) OR ( );
- A.部门号
- B.部门名
- C.商品编号
- D.销售数
正确答案及解析
正确答案
解析
本题考基本sql语句。sql语言固定格式,SELECT + 表字段名 + FROM +数据表名+ WHERE + 筛选条件,若表字段全部列都要选取,就用“*”代替,单独某几个列就用字段名和逗号隔开。 字段名区域也可以使用一些SQL自带函数进行处理,如求平均值、最大值等信息。后面筛选条件就是类似于 id=2,name="张三 "这类条件。条件后面having子句主要用于group by子句条件。它与where有相似之处但也有区别。在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行,而where子句在查询过程中执行优先级别优先于聚合语句(sum,min,max,avg,count)。下面通过几个例子来说明:where子句:select sum(num) as rmb from table1 where id>10 //只有先查询出id大于10记录才能进行聚合语句having子句:select reportsn as manager, count(*) as reports from table1 group by reportsn having count(*) > 4特别注意:having条件表达示为聚合语句。having子句查询过程执行优先级别低于聚合语句。也就是说把上面having换成where则会出错。HAVING子句可以筛选成组后各组数据。 HAVING子句在聚合后对组记录进行筛选而WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前.
你可能感兴趣的试题

-
- A.V(S2)和P(S4)
- B.P(S2)和V(S4)
- C.P(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案

-
- A.V(S1)P(S2)和V(S3)
- B.P(S1)V(S2)和V(S3)
- C.V(S1)V(S2)和V(S3)
- D.P(S1)P(S2)和V(S3)
- 查看答案

-
- A.P(S4)和V(S4)V(S5)
- B.V(S5)和P(S4)P(S5)
- C.V(S3)和V(S4)V(S5)
- D.P(S3)和P(S4)V(P5)
- 查看答案

-
- A.P(S3)和V(S4)V(S5)
- B.V(S3)和P(S4)P(S5)
- C.P(S3)和P(S4)P(S5)
- D.V(S3)和V(S4)V(S5)
- 查看答案

-
- A.P(S2)和P(S4)
- B.P(S2)和V(S4)
- C.V(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案