【问题标题】:SQL Group by doesn't return a single line resultSQL Group by 不返回单行结果
【发布时间】:2014-07-18 05:46:59
【问题描述】:

我正在尝试使用 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

我有点不知所措,还有什么可以尝试的,有什么想法吗?

【问题讨论】:

  • 从 group by 中删除 ,[Subcatagory] 它应该可以工作
  • 这是一个分类(不是分类)....

标签: sql sql-server sql-server-2008 group-by


【解决方案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

【讨论】:

  • 我无法相信那是多么的简单,我是多么的接近。谢谢回答我的问题。我会去看看我是否能弄清楚如何将它应用于我的实际问题。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-01
  • 1970-01-01
  • 2015-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多