首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询以获得基于月份的计数

SQL查询以获得基于月份的计数
EN

Stack Overflow用户
提问于 2017-10-31 18:55:39
回答 1查看 325关注 0票数 0

这是登录表,我需要在其中显示用户名和计数,他们已经登录到应用程序,并按月分组数据,以显示基于月份明智的计数。

表名:LoginInformation

代码语言:javascript
复制
UserName   Count    Datetime
---------------------------------    
Test-1       1      2017-06-02
Test-1       1      2017-07-20
Test-1       1      2017-09-20 
Test-1       1      2017-09-20 
Test-1       1      2017-09-15
Test-1       1      2017-10-22 
Test-1       1      2017-10-23 
Test-2       1      2017-06-12 
Test-2       1      2017-06-12 
Test-2       1      2017-07-24
Test-2       1      2017-09-23 
Test-2       1      2017-09-29 
Test-2       1      2017-09-11
Test-2       1      2017-10-12 
Test-2       1      2017-10-19 
Test-2       1      2017-10-21 

我需要他的结果被显示为

代码语言:javascript
复制
UserName   Count     June July Sept Oct
----------------------------------------
Test-1       7        1    1    3    2
Test-1       7        2    1    3    3
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-31 21:06:03

代码语言:javascript
复制
;WITH ctePrepared AS (
    SELECT
       UserName
       ,TotalCount = SUM([Count]) OVER (PARTITION BY UserName)
       ,[MonthName] = DATENAME(MONTH,[Datetime])
       ,[Count]
    FROM
       @Table
)
ORDER BY
    UserName DESC

SELECT *
FROM
    ctePrepared t
    PIVOT
    (
       SUM([Count])
       FOR [MonthName] IN (January,February,March,April,May,June,July,August,September,October,November,December) 
    ) pvt

测试数据脚本(如果需要):

代码语言:javascript
复制
DECLARE @Table AS TABLE (UserName VARCHAR(50), [Count] INT, [Datetime] DATETIME)
INSERT INTO @Table
VALUES ('Test-1',1,'2017-06-02')
,('Test-1',1,'2017-07-20')
,('Test-1',1,'2017-09-20')
,('Test-1',1,'2017-09-20')
,('Test-1',1,'2017-09-15')
,('Test-1',1,'2017-10-22')
,('Test-1',1,'2017-10-23')
,('Test-2',1,'2017-06-12')
,('Test-2',1,'2017-06-12')
,('Test-2',1,'2017-07-24')
,('Test-2',1,'2017-09-23')
,('Test-2',1,'2017-09-29')
,('Test-2',1,'2017-09-11')
,('Test-2',1,'2017-10-12')
,('Test-2',1,'2017-10-19')
,('Test-2',1,'2017-10-21')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47042727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档