我尝试使用Sum,Count和Group By来编写一些SQL。
我的数据库服务器是Microsoft SQL Server 2008。
我的实际查询是非常复杂的连接多个表等,但我想我已经提出了一个简单的例子来说明我面临的问题。
我希望的是一行输出,总结符合条件的记录。
这是我的测试数据表
ID Category (Char) Amount (int) SubCategory (Char)
1 A 10 X
2 A 15 X
3 A 20 X
4 B 20 X
5 B 30 X
6 C 50 Y
7 A 60 Y
8 A 70 Y
9 B 80 Y
10 B 90 Y
11 B 80 Y
12 C 70 Y
13 C 60 Y
这是我到目前为止的SQL
SELECT [Category]
,Sum(Amount) as [Amount Sum]
,COUNT(Amount) as [Item Count]
,Count(Distinct[SubCategory]) as [SubCategory Count]
FROM [Test].[dbo].[TestTable]
Where Category = 'A'
Group by Category,[Subcatagory]
Select * from TestTable
我想要的结果就是这个
Category Amount Sum Item Count SubCategory Count
A 175 5 2
但是我的结果是这样的
Category Amount Sum Item Count SubCategory Count
A 45 3 1
A 130 2 1
我还有什么不值得尝试,有什么想法吗?
答案 0 :(得分:1)
您应该GROUP BY
仅按类别:
SELECT [Catagory]
,Sum(Amount) as [Amount Sum]
,COUNT(Amount) as [Item Count]
,Count(Distinct[SubCatagory]) as [SubCatagory Count]
FROM [Test].[dbo].[TestTable]
Where Catagory = 'A'
Group by Catagory