Sql 重写GROUPBY子句中的文本

Sql 重写GROUPBY子句中的文本,sql,tsql,Sql,Tsql,我有一个很大的数据表,其中包含输入不一致的描述。我试图找出如何在查询中包含此字段,并且即使描述不匹配,仍然对记录进行分组。在下面的示例中,我不一定需要最长的描述,即使结果返回的描述恰好是第一个,也可以。提前谢谢 SELECT PartNumber, Description, Sum(TotQtySold), year From partsTable GROUP BY PartNumber, Description, year PartNumber|Description|TotQtySold|

我有一个很大的数据表,其中包含输入不一致的描述。我试图找出如何在查询中包含此字段,并且即使描述不匹配,仍然对记录进行分组。在下面的示例中,我不一定需要最长的描述,即使结果返回的描述恰好是第一个,也可以。提前谢谢

SELECT PartNumber, Description, Sum(TotQtySold), year
From partsTable
GROUP BY PartNumber, Description, year

PartNumber|Description|TotQtySold|year
ABC123    |Repair Kit |5     |2007
ABC123    |kit        |3     |2007
ABC123    |Repair kit |8     |2007

Desired Result
ABC123    |Repair Kit |16    |2007

只是不要按该列分组。相反,
选择该列的
MAX()

SELECT PartNumber, MAX(Description), Sum(TotQtySold), year
From partsTable
GROUP BY PartNumber, year

只需从
groupby
子句中删除
Description
,并使用
min/max
或使用
subquery

select PartNumber, 
       (select top 1 Description 
        from table 
        where PartNumber = t.PartNumber and 
              year = t.year
        order by Description desc) as Description, -- remove order by clause if you want whatever Description
       Year
from table t
group by PartNumber, year;
但是,我不建议在具有长描述的
groupby
子句中使用
Description

简单地
MAX(说明)
?(并从GROUPBY子句中删除说明。)