这应该很简单,但是让我受益匪浅。
我所拥有的只是一个只有两列的表格,如下所示:
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个结
感谢所有人!