Sql Server中,不使用聚合函数(max,min,sum等),怎么实现求最大值、最小值、求和?

如题所述

最大值:
首先求出所有的非最大值,然后利用集合的差运算即可。
计算所有的非最大值,要利用表自身的笛卡尔积.
列如:
select scores from MY_MAX where scores not in
(select A.scores from MY_MAX A,MY_MAX B where A.scores<B.scores)
麻烦得很。。为啥不用MAX 等函数!!很简单嘛!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-19
聚合函数
聚合函数对一组值执行计算并返回单一的值。除COUNT函数之外,聚合函数忽略空值。聚合函数经常与Select语句的GROUPBY子句一同使用。所有聚合函数都具有确定性。任何时候用一组给定的输入值调用它们时,都返回相同的值。有关函数确定性的更多信息,请参见确定性函数和非确定性函数。仅在下列项中聚合函数允许作为表达式使用:Select语句的选择列表(子查询或外部查询)。
COMPUTE或COMPUTEBY子句。
HAVING子句。
Transact-SQL编程语言提供下列聚合函数:AVGMAX
BINARY_CHECKSUMMIN
CHECKSUMSUM
CHECKSUM_AGGSTDEV
COUNTSTDEVP
COUNT_BIGVAR
GROUPINGVARP