【问题标题】:How to getting sum of Count() value that using groupBy in SQL Server?如何在 SQL Server 中获取使用 group By 的 Count() 值的总和?
【发布时间】:2014-06-10 05:31:24
【问题描述】:

我有一个包含 2 个字段的表格:

Datetime                     [IndexValue]
---------                    -----------
2014-02-23 20:15:59.000      G
2014-02-23 20:15:59.000      G
2014-02-23 20:15:59.000      Y
2014-03-05 12:42:59.683      R
2014-03-05 12:42:59.683      G
2014-03-05 12:42:59.683      Y
2014-03-05 12:42:59.683      G

我想按名称、“count”和“SUM”对它们进行分组

Datetime                 [IndexValue] amount   total
---------                -----------  ------  ------
2014-02-23 20:15:59.000  G            2       3
2014-02-23 20:15:59.000  Y            1       3
2014-03-05 12:42:59.683  G            2       4
2014-03-05 12:42:59.683  Y            1       4
2014-03-05 12:42:59.683  R            1       4

我使用此代码成功,但只是在 MySQL 中,SQL Server 2008 中出现错误

SELECT 
  CONVERT(varchar,[CreateDate],101),[IndexValue],
COUNT(*) AS amount,
(SELECT COUNT(*) AS total FROM [db_spc].[dbo].[tb_crqs_item])
FROM [db_spc].[dbo].[tb_crqs_item]
GROUP BY CONVERT(varchar,[CreateDate],101),[IndexValue]
ORDER BY CONVERT(varchar,[CreateDate],101)

如何在 SQL Server 中编写查询?

【问题讨论】:

  • 我不明白你的子查询在做什么? (SELECT COUNT(*) AS total FROM [db_spc].[dbo].[tb_crqs_item])。它为外部查询的每一行计算表中的所有记录?你能澄清一下吗?
  • 因为如果我使用这个:(SELECT COUNT(*) AS total FROM [db_spc].[dbo].[tb_crqs_item] GROUP BY CONVERT(varchar,[CreateDate],101))。然后出现错误“子查询返回超过 1 个值,不允许”
  • 很好,这是一场“猜猜我用这段代码会遇到什么错误”的竞赛。奖励是什么?
  • 我的意思是如何计算“总计”?
  • 您说您收到“SQL 2008 中的错误”,但不是什么错误。您希望回答者使用测试数据设置 sql server 2008 环境并运行您的查询以找出问题所在?如果您说出您遇到的错误,那么获得帮助会容易得多。

标签: sql-server count sum grouping


【解决方案1】:

如果您想获得子组的计数,您需要链接到主表以识别该组。 即:

SELECT 
    createdate,
    [IndexValue],
    COUNT(*) AS amount, 
    (SELECT COUNT(*) FROM tb_crqs_item t1 where t1.createdate =t0.createdate)
FROM tb_crqs_item t0
GROUP BY createdate,[IndexValue]
ORDER BY createdate

【讨论】:

  • 好的,但是 createate 有类型数据 datetime ..如果我想得到 count /day?如何转换'where t1.createdate =t0.createdate'
猜你喜欢
  • 2017-09-30
  • 1970-01-01
  • 1970-01-01
  • 2021-07-29
  • 2014-02-19
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多