Sql 显示至少修改过2次的用户

Sql 显示至少修改过2次的用户,sql,sql-server,Sql,Sql Server,我有两张桌子: User: ID, Name UserChanges: ID, UserID, ChangeDate 每次用户更改其名称时,都会在UserChanges中插入一个新行。 因此UserChanges my包含多个具有相同用户ID的行 我想获得至少更改了两次的User.name的列表,其中一次修改发生在2013年12月15日之后 因此,首先选择UserChanges表中多次引用的所有用户。 在此列表中,选择那些在2013年12月15日之后更改的用户。按用户分组,然后统计更改以及其

我有两张桌子:

User:
ID, Name

UserChanges:
ID, UserID, ChangeDate
每次用户更改其名称时,都会在UserChanges中插入一个新行。 因此UserChanges my包含多个具有相同用户ID的行

我想获得至少更改了两次的User.name的列表,其中一次修改发生在2013年12月15日之后

因此,首先选择UserChanges表中多次引用的所有用户。
在此列表中,选择那些在2013年12月15日之后更改的用户。

按用户分组,然后统计更改以及其中一个是否在指定日期或之后

select u.name
from user u
inner join userchanges c on c.userid = u.id
group by u.name
having count(c.id) > 1
and sum(case when ChangeDate >= '2013-12-15' then 1 else 0 end) > 0

按用户分组,然后统计更改,以及其中一项是否在指定日期或之后

select u.name
from user u
inner join userchanges c on c.userid = u.id
group by u.name
having count(c.id) > 1
and sum(case when ChangeDate >= '2013-12-15' then 1 else 0 end) > 0

您使用的是MySQL还是SQL Server?请使用适当的数据库引擎标记问题。您使用的是MySQL还是SQL Server?请使用适当的数据库引擎标记问题。