查询总计多列并按另一列分组

时间:2013-11-18 14:38:16

标签: sql grouping totals

我正在尝试根据位置获得多个记录的总计 - 但是要获得多个列的总数 - 基本上有各种位置,每个位置在该位置具有不同的种类和总数。

没有做一些非常丑陋的事情 - 我不知道最好的方法 - 有什么建议吗?

我有一张桌子 记录
RecordID,Location,Species1,Species2,Species3


1,Loc1,3,NULL,1
2,Loc2,NULL,12,NULL
3,Loc2,2,2,2 4,Loc1,1,2,3 5,Loc4,3,NULL,NULL

我需要得到以下数据:

位置|物种1 |物种2 | Species3
Loc1 | 4 | 2 | 4
Loc2 | 2 | 14 | 2
Loc4 | 3 | NULL | NULL

1 个答案:

答案 0 :(得分:0)

SELECT Location,
       SUM(ISNULL(Species1, 0)) AS Species1,
       SUM(ISNULL(Species2, 0)) AS Species2,
       SUM(ISNULL(Species3, 0)) AS Species3
FROM Record
GROUP BY Location