Sql 根据月份查找列的计数的步骤

Sql 根据月份查找列的计数的步骤,sql,sql-server,tsql,sql-server-2008,Sql,Sql Server,Tsql,Sql Server 2008,我有三个专栏。A列包含3个不同月份的日期,B列包含用户名。我要计算三个月内的“用户名”。例如,第4个月、第5个月和第6个月的用户名计数。非常感谢您的任何意见 Dates Username Count 6/10/2018 a 6/11/2018 b 6/12/2018 a 6/13/2018 c 5/3/2018 e 5/4/2018 f 5/5/2018 e 4/21/2018 g 4/22/2018

我有三个专栏。A列包含3个不同月份的日期,B列包含用户名。我要计算三个月内的“用户名”。例如,第4个月、第5个月和第6个月的用户名计数。非常感谢您的任何意见

Dates   Username    Count
6/10/2018   a   
6/11/2018   b   
6/12/2018   a   
6/13/2018   c   
5/3/2018    e   
5/4/2018    f   
5/5/2018    e   
4/21/2018   g   
4/22/2018   h   
4/23/2018   i   
4/24/2018   g

您的示例输入意味着您希望每月计数,但与原始数据处于相同的级别。在这种情况下,我们可以尝试使用
COUNT
作为分析函数,分区为月份和年份

SELECT
    Dates,
    Username,
    COUNT(*) OVER (PARTITION BY CONVERT(VARCHAR(7), Dates, 126)) count
FROM yourTable;

您的示例输入意味着您希望每月计数,但与原始数据处于相同的级别。在这种情况下,我们可以尝试使用
COUNT
作为分析函数,分区为月份和年份

SELECT
    Dates,
    Username,
    COUNT(*) OVER (PARTITION BY CONVERT(VARCHAR(7), Dates, 126)) count
FROM yourTable;

你试过一个问题了吗?堆栈溢出不是免费的代码编写服务。提示:
groupby
with
MONTH()
。我只尝试了一个月,但没有获得o/p。所以我有点困惑。我不确定我的方法是否正确。从[表名]中选择日期、计数(用户名),其中“日期”如“2018年11月6日%”按日期分组,用户名;你试过一个问题了吗?堆栈溢出不是免费的代码编写服务。提示:
groupby
with
MONTH()
。我只尝试了一个月,但没有获得o/p。所以我有点困惑。我不确定我的方法是否正确。从[表名]中选择日期、计数(用户名),其中“日期”如“2018年11月6日%”按日期分组,用户名;这比我的答案更准确,尽管我的答案是:-)我不知道OP想要什么…但我很确定这是我们的答案之一。蒂姆,也许我弄错了什么,但我很确定,你不想使用
年(日期)+'-'+月(日期)
-
隐式转换为
0
,这将导致整数算术。。。也许
CONVERT(VARCHAR(7),Dates,126)
?@Shnugo更适合我。我从中得到了这段代码,它得到了高度的支持。@TimBiegeleisen第6个月=4个用户,第5个月=3个用户,第4个月=4个用户的输出应该是lik。但我无法找到比我的答案更准确的解决方案,尽管我的答案是:-)我不知道OP想要什么…但我很确定这是我们的答案之一。蒂姆,可能我弄错了什么,但我很确定,你不想使用
年(日期)+'-'+月(日期)
-
隐式转换为
0
,这将导致整数算术。。。也许
CONVERT(VARCHAR(7),Dates,126)
?@Shnugo更适合我。我从中得到了这段代码,它得到了高度的支持。@TimBiegeleisen第6个月=4个用户,第5个月=3个用户,第4个月=4个用户的输出应该是lik。但我无法找到解决办法