SQL计数多行不同的出现次数,按行数不同

时间:2017-10-04 23:32:45

标签: sql sql-server group-by count

我有一个查询,它将“总计”列中的所有值相加,并将它们与商店名,年份,品牌和型号的唯一组合(通过分组依据)对齐:

    select storename, year, make, model, sum(total) as [Sum]
    from #TempTable
    group by storename, year, make, model

结果的一个例子:

    StoreA 2009 TOYO    AVALON  1039.95
    StoreB 2005 CHET    TAHOE   1039.99
    StoreC 2010 MAZD    CX-9    1040.07
    StoreD 2007 DODG    CHARGER 1040.09
    StoreE 2003 ACUT    MDX     1040.17

我想要做的是在此查询中添加另一列,计算每个组中存在的行数。例如,我知道在StoreA有5个2009 TOYO AVALON的实例,但是我希望脚本能够计算出storename,year,make,model的每个独特组合的数量。我希望它显示为[Sum]右侧的额外列[CarCount]。

必须有办法,但我找不到解决办法。谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

除非我误解,否则你需要依靠现有的分组。只需使用COUNT即可获得它。

select storename, year, make, model, sum(total) as [Sum], COUNT(1) as CarCount
    from #TempTable
    group by storename, year, make, model

答案 1 :(得分:0)

向查询添加计数(*),它将计算该组中的实例数

 select storename, year, make, model, sum(total) as [Sum], count(*) carcount 
    from #TempTable
    group by storename, year, make, model