基于另一个列值的几个 MAX 值

Several MAX values based on another column value

我正在尝试在 MS ACCESS 中编写一个 SQL 查询,我已将其缩小到下面的 table,但似乎无法在不进行几个非常大的查询。

这是我要查询的table的结构:

我要的结果:MemberId和当年memberId访问次数最多的年份。(即2014年访问次数最多的memberId,2015年访问次数最多的memberId等等。我还希望在结果中显示相关年份)

谢谢!

听起来您需要在子查询中通过 year 确定 MAX(Visits),然后 JOIN 确定:

SELECT a.*,b.Max_Visits
FROM YourTable a
JOIN (SELECT Year,MAX(Visits) AS Max_Visits
      FROM YourTable
      GROUP BY Year
     ) b
 ON a.Year = b.Year
 AND a.Visits = b.Max_Visits

如果您想查看所有成员,而不仅仅是那些每年访问次数最多的成员,您可以将 JOIN 更改为 LEFT JOIN

如果平局,这 returns 两个成员。