基于另一个列值的几个 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 两个成员。
我正在尝试在 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 两个成员。