SQL如何避免按不需要的列进行分组
我有一个由以下列组成的表:SQL如何避免按不需要的列进行分组,sql,sql-server,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008 R2,我有一个由以下列组成的表: HouseID-INT 户型-整型 位置-Int DateBuild-Datetime 基本上,除了HouseType,我不想分组,但我不得不分组,因为我不需要聚合某些列 SELECT [HouseType], COUNT(*), YEAR([DateBuilt]) AS YearBuilt, MONTH([DateBuilt]) AS MonthBuilt FROM HouseTable GROUP BY HouseType, DateBuilt 有人能帮我解决这
SELECT [HouseType], COUNT(*), YEAR([DateBuilt]) AS YearBuilt, MONTH([DateBuilt]) AS MonthBuilt
FROM HouseTable
GROUP BY HouseType, DateBuilt
有人能帮我解决这个问题吗
样本数据
您可以通过对正在使用的功能进行分组:
select
HouseType
, count(*)
, year(DateBuilt) as YearBuilt
, month(DateBuilt) as MonthBuilt
from HouseTable
group by
HouseType
, year(DateBuilt)
, month(DateBuilt)
如果要保留某个版本的日期格式,可以使用dateadd(month,datediff(month,0,datebuild),0)
作为替代方法,或者将其添加到上述查询中:
select
HouseType
, count(*)
, dateadd(month, datediff(month, 0, DateBuilt), 0) as YearMonthBuilt
from HouseTable
group by
HouseType
, dateadd(month, datediff(month, 0, DateBuilt), 0)
你能提供一些样本数据吗?当然,我看看我能做些什么这正是我想要的,我不知道你能用年、月来分组。谢谢SqlZim,这是我接受的答案。@Kendo很乐意帮忙!