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子句中删除说明。)