SQL聚合函数

SQL聚合函数,sql,sql-server-2008,Sql,Sql Server 2008,给出下表 Month Product Sales --------- ------- ----- January 1 10 January 2 15 February 3 23 March 1 15 我想得到每月销售量更多的产品 我在执行要求字段不在聚合组中的查询时遇到问题。 请注意,我提供的表是一个查询的结果 我正在使用SQLServer2008。我不能使用

给出下表

Month Product Sales --------- ------- ----- January 1 10 January 2 15 February 3 23 March 1 15 我想得到每月销售量更多的产品

我在执行要求字段不在聚合组中的查询时遇到问题。 请注意,我提供的表是一个查询的结果

我正在使用SQLServer2008。我不能使用临时变量或over子句。 我不想重复导致我进入这张桌子的问题!但如果这是唯一的办法,那也没关系

预期结果:

Month Product Sales --------- ------- ----- January 2 15 February 3 23 March 1 15
一个非常棘手的解决方案

SELECT a.* 
FROM   mytable a 
       LEFT JOIN mytable b 
              ON a.Month = b.Month
                 AND a.Sales < b.Sales
WHERE  b.Month IS NULL 

为什么不能使用聚合函数?在这种情况下,这似乎是最明智的选择。我可以使用聚合函数。我的意思是产品必须出现在结果中,而aggregate组是我需要的查询的唯一月份。如果我不想重复我使用的查询,该怎么办?我不能使用大学要求的临时变量that@user1279792您正在使用哪个数据库和版本?sql server 2008无法在上使用too@user1279792-您能否编辑您的问题并包括以下内容?源数据的外观。您希望结果是什么样子。你被允许使用的东西。你不允许使用的东西。如果是这样的话,就把它标记为“家庭作业”吧?我只是对源数据的查找无能为力。但是,我可以插入导致我得到该结果的查询
SELECT a.* 
FROM   mytable a 
       LEFT JOIN mytable b 
              ON a.Month = b.Month
                 AND a.Sales < b.Sales
WHERE  b.Month IS NULL