【问题标题】:SQL query, count users per month (datetime)SQL查询,每月统计用户数(日期时间)
【发布时间】:2016-02-11 19:45:19
【问题描述】:

我有一个 SQL 表,我想将其更改为以下格式:

我已经有了那个表,但是我无法让它计算另一个表中的用户并将它们插入到列中。

【问题讨论】:

  • 当你说你“不能”时,你是什么意思?你尝试了什么,它是如何失败的?
  • 您使用的是什么 DBMS? SQL 服务器? MySQL?甲骨文?还有什么?
  • 我认为你应该(有)看(编辑)这里:stackoverflow.com/questions/2722408/…

标签: sql sql-server datetime count


【解决方案1】:

我建议你不要像这样使用表格视图:

CREATE VIEW vw_CountUsersPerMonth 
AS

SELECT YEAR(SignUpTime) as [Year],
        DATENAME(month,SignUpTime) AS [MonthName],
        COUNT(UserID) AS [CountUsers] 
FROM Tbl_Users 
GROUP BY YEAR(SignUpTime), DATENAME(month,SignUpTime))

【讨论】:

    【解决方案2】:

    如果您使用 tSQL,应该这样做,但是不同年份的相同月份呢?

    ;WITH CTE AS (
    SELECT  DATENAME(month,SignUpTime) AS [MonthName],
           COUNT(UserID) AS [CountUsers] 
    FROM Tbl_Users 
    GROUP BY DATENAME(month,SignUpTime))
    
    UPDATE A 
    SET A.[CountUsers]=B.[CountUsers]
    FROM Tbl_CountUsersPerMonth AS A LEFT OUTER JOIN 
        CTE AS B ON A.[MonthName]=B.[MonthName]
    

    【讨论】:

    • 我的数据库是 SQL Server。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 2010-09-11
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多