Loc*_*rde 4 sql t-sql sql-server-2008
这应该很简单,但有些东西给了我很大的时间.
我只有一个只有两列的表,如:
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
Run Code Online (Sandbox Code Playgroud)
等等.
我想计算每一天的总字数 - 我按照dateadded对它们进行分组并选择WordCount的总和,最后得到语法错误(wordcount必须在group by子句中)但是现在我得到空值了一天的数量
这是我的查询:
select SUM(WordCount) as 'words per day' from @WordsCount group by DateAdded, WordCount
Run Code Online (Sandbox Code Playgroud)
这只是选择null.我怎么知道什么是错的?
谢谢.
如果你使用怎么办:
select SUM(WordCount) as 'words per day'
from @WordsCount
group by DateAdded
Run Code Online (Sandbox Code Playgroud)
我不明白你为什么还要用字数来分组....
此外,由于DateAdded可能是DATETIME包含时间部分的列,您可能只想按日期分组:
select SUM(WordCount) as 'words per day'
from @WordsCount
group by CAST(DateAdded AS DATE)
Run Code Online (Sandbox Code Playgroud)
更新:如果我尝试这个,查询工作正常....
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)
Run Code Online (Sandbox Code Playgroud)
并产生输出:
2008-11-07 128
2008-11-23 25
2008-12-03 62
Run Code Online (Sandbox Code Playgroud)
我认为这应该给你每天的字数
select SUM(WordCount) as 'words per day' , cast(DateAdded as date) dateAdded
from WordsCount
group by cast(DateAdded as date)
Run Code Online (Sandbox Code Playgroud)