使用MySQL,我如何判断谁每年至少参加一次活动?
我有一个带有name列和date列的表。我从2006年起就有过一些活动。如何获得2006年至2017年期间每年至少参加一次活动的名单 此外,如何使用数据库中显示的最近一年,而不是硬编码2017?您可以这样做:使用MySQL,我如何判断谁每年至少参加一次活动?,mysql,sql,relational-division,Mysql,Sql,Relational Division,我有一个带有name列和date列的表。我从2006年起就有过一些活动。如何获得2006年至2017年期间每年至少参加一次活动的名单 此外,如何使用数据库中显示的最近一年,而不是硬编码2017?您可以这样做: select name from t group by name having count(distinct year(date)) = (select count(distinct year(date)) from
select name
from t
group by name
having count(distinct year(date)) = (select count(distinct year(date))
from t
);
这将选择在您有事件记录的所有年份中都参加过事件的用户
如果您特别想要所有年份,即使是没有事件的当前年份,那么:
select name
from t
group by name
having count(distinct year(date)) = (select 1 + year(curdate()) - year(min(date)) + 1
from t
);
样本数据和预期结果将是有帮助的。工作完美。谢谢