SQL中只要用到聚合函数就一定要用到group by 吗?

如题所述

SQL中只要用到聚合函数就不一定要用到group by。聚合函数是对一组值执行计算,并返回单个值,也被称为组函数。 聚合函数可以应用于SELECT 查询语句的 GROUP BY 子句的HAVING子句中,但不可用于WHERE语句中,因为WHERE是对逐条的行记录进行筛选。

扩展资料:

Transact-SQL编程语言提供的聚合函数有:

1、AVG:返回指定组中的平均值,空值被忽略。例:select prd_no,avg(qty) from sales group by prd_no.

2、COUNT:返回指定组中项目的数量。例:select count(prd_no) from sales.

3、COUNT_BIG:返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。例:select count_big(prd_no) from sales.

4、MIN:返回指定数据的最小值。例:select prd_no,min(qty) from sales group by prd_no.

5、MAX:返回指定数据的最大值。例:select prd_no,max(qty) from sales group by prd_no.


温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-27
是的,凡是没有出现在聚合函数中的列,一定要包含在group by 子句中
第2个回答  2018-11-15
分情况,1、当聚集函数和非聚集函数出现在一起时,需要将非聚集函数进行group by
2、当只做聚集函数查询时候,就不需要进行分组了。
希望对你有帮助
第3个回答  推荐于2018-05-06
不一定,如:
[TEST@ora1] SQL>select id from test1;

ID
----------
1
2

[TEST@ora1] SQL>select sum(id) from test1;

SUM(ID)
----------
3

---
以上,希望对你有所帮助。本回答被提问者和网友采纳
相似回答