1

users当他们的帐户创建时,我有一个存储 TIMESTAMP 的表。我正在尝试编写一个查询,该查询将显示在给定时间段内按周(从星期一开始)分组的新用户。主管将进入并选择报告日期范围,从而选择 2 个变量。他们应该看到显示在 2 个选定可变日期之间注册的所有新用户的结果,按周分组(每周的星期一开始)

变量: @StartRangeSelectDate @EndRangeSelectDate

用户表:

| id         | TIMESTAMP
----------------------------------------------
| 1          | 2013-09-02
| 2          | 2013-09-08
| 3          | 2013-09-12
| 4          | 2013-09-27

结果应为(选定的开始日期是2013-09-01,结束日期为2013-09-29:

| YearWeek         | # of New Users
----------------------------------------------
| 2013 36          | 2
| 2013 37          | 1
| 2013 38          | 0
| 2013 39          | 1

查询以显示日期范围内的新用户总数,但尚未按日期范围内的周分组:

SELECT COUNT(user.id) AS '# of New Users in Date Range'
FROM user 
WHERE user.Inactive = 0
    AND user.TimeStamp BETWEEN @StartRangeSelectDate AND @EndRangeSelectDate;
4

1 回答 1

6
SELECT yearweek(`TimeStamp`, 1) yw,
       COUNT(id) AS '# of New Users in Date Range'
FROM user 
WHERE Inactive = 0
AND TimeStamp BETWEEN @StartRangeSelectDate AND @EndRangeSelectDate
GROUP BY yw
于 2013-10-02T20:30:38.703 回答