当前位置: 首页 > 面试题库 >

一列按日期列分组的总和

孙才捷
2023-03-14
问题内容

这应该很简单,但是让我受益匪浅。

我所拥有的只是一个只有两列的表格,如下所示:

 WordCount          DateAdded
 `````````````````````````````
 96                 2008-11-07 09:16:31.810
 32                 2008-11-07 15:26:27.547
 25                 2008-11-23 16:05:39.640
 62                 2008-12-03 12:33:03.110

等等。

我想计算 每天总字数 -我将它们按日期添加分组并选择WordCount的总和,最后得到语法错误(wordcount必须在group
by子句中),但是现在我得到的天数为null

这是我的查询:

select SUM(WordCount) as 'words per day' from @WordsCount group by DateAdded, WordCount

这只是选择null。我怎么知道怎么了?

谢谢。


问题答案:

如果您使用该怎么办:

select SUM(WordCount) as 'words per day' 
from @WordsCount 
group by DateAdded

我不明白您为什么还要按字数分组…。

另外,由于DateAdded可能是DATETIME包含时间部分的列,因此您可能希望仅按日期分组:

select SUM(WordCount) as 'words per day' 
from @WordsCount 
group by CAST(DateAdded AS DATE)

更新: 如果我尝试此,查询工作正常....

DECLARE @WordsCnt TABLE (WordCount INT, DateAdded DATETIME)

INSERT INTO @wordsCnt(WordCount, DateAdded)
VALUES(96, '2008-11-07 09:16:31.810'),
      (32, '2008-11-07 15:26:27.547'),
      (25, '2008-11-23 16:05:39.640'),
      (62, '2008-12-03 12:33:03.110')

select CAST(DateAdded AS DATE), SUM(WordCount) as 'words per day' 
from @WordsCnt
group by CAST(DateAdded AS DATE)

并产生输出:

2008-11-07   128
2008-11-23    25
2008-12-03    62


 类似资料:
  • 问题内容: 我在PHP数组中有一些来自XML或JSON的数据,如下所示: 我想做的是按日期订购这两项。 当排序值位于每个项目内时,是否可以按日期排序? 我需要将日期格式转换为时间戳吗? 我不想做什么 我可以使用date并将其设置为ID,但是感觉不对,因为两个项目可以具有相同的日期,因此它不是唯一的。 问题答案: 您无需在排序之前将日期转换为时间戳,但这是一个好主意,因为如果不使用它,将需要更多的时

  • 问题内容: 有一个带有列的表,如:… 我有一个查询,例如: 这将按完整的分组,包括小时和分钟。我希望按日期分组,而不按日期分组。 有人知道怎么做吗?我仍然可以在我的代码中动态地执行此操作(因为我是atm),但是我正在清理垃圾代码,并且可以通过SQL来完成此操作,但我不知道如何:(。 问题答案: 将datetime强制转换为日期,然后使用以下语法将GROUP BY强制转换为: 或者,您可以按@ or

  • 问题内容: 快速提问,我有下表 我想将每个月的总数加起来,并按月对总数进行分组。例如, Jan- > 138 Feb-> 88.2 Apr-> 29.84 关于它的任何线索。谢谢 问题答案: 此解决方案将为您提供月份名称作为结果集的列,然后根据需要提供总数。

  • 我有这样一个数据帧: 现在我需要按ID分组,对于col1和col4列,找到每个ID的和,并将其放入父列附近的一个新列中(例如:col3(sum)),但是对于col2和col3,找到max value。期望输出: 计算这个最简单最快的方法是什么?

  • 问题内容: 请帮我这个: 我想按列TestType分组,但如果它们具有相同的TestType,则应将Result拆分为colunms 我希望SQL以这种格式返回数据 Result#列应该是动态的,因为每个TestType都有很多结果 问题答案: 正如我在评论中所提到的,这里您需要的是或交叉标签;我更喜欢后者,所以我将要使用的东西。 对此的非动态解决方案如下: 但是,问题在于这会将您“锁定”到3个结

  • 感谢所有人!