基于日期范围如何在mysql中获得唯一,新的和重复的结果?

时间:2013-04-17 10:28:08

标签: mysql sql datetime mysqli

我需要帮助。我有一个带有日期时间字段的数据库表,还包含用户ID(外键)。我需要获得独特,新的和重复用户的活动。

如果用户执行某项活动,则会在此表中插入数据库行。因此,在日期范围内(从日期到日期),我提到这些用户是一次或多次完成活动的唯一用户。与不同用户的数量一样,是唯一用户的数量。

然后我需要获得那些活动在日期范围内且不在该日期范围之外的用户的数量作为新用户以及在日期范围内且在该日期范围之外的活动作为重复用户

由于

1 个答案:

答案 0 :(得分:0)

独特用户

SELECT DISTINCT UserId FROM Table
WHERE Date BETWEEN StartDate AND EndDate

新用户

SELECT DISTINCT UserId FROM Table
WHERE Date BETWEEN StartDate AND EndDate
AND UserId NOT IN (SELECT UserId FROM Table
                   WHERE Date NOT BETWEEN StartDate AND EndDate)

重复用户

SELECT DISTINCT UserId FROM Table
WHERE Date BETWEEN StartDate AND EndDate
AND UserId IN (SELECT UserId FROM Table
               WHERE Date NOT BETWEEN StartDate AND EndDate)