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 有人能帮我解决这

我有一个由以下列组成的表:

  • HouseID-INT
  • 户型-整型
  • 位置-Int
  • DateBuild-Datetime
  • 基本上,除了HouseType,我不想分组,但我不得不分组,因为我不需要聚合某些列

    SELECT [HouseType], COUNT(*), YEAR([DateBuilt]) AS YearBuilt, MONTH([DateBuilt]) AS MonthBuilt
    FROM HouseTable
    GROUP BY HouseType, DateBuilt
    
    有人能帮我解决这个问题吗


    样本数据
  • 房间标识-1,2,3
  • 户型-1,1,2
  • 位置-1,2,1
  • 日期-2016-12-23、2017-02-02、2017-01-19、

  • 您可以通过对正在使用的功能进行分组:

    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很乐意帮忙!