在多次用户尝试中选择最大值的SQL JOIN在两次尝试具有相同值时返回两个值
大家早上好 我有一个非常简单的SELECT/JOIN语句,它从放置测试中获取一些导入的数据,并返回用户所做的得分最高的尝试,即最佳得分。用户可以多次参加此测试,因此我们只需进行最佳尝试。如果用户多次尝试(比如说,尝试两次),两次都得到相同的分数,该怎么办 我当前的查询最终返回这两条记录,因为它们都相等,所以MAX()同时返回这两条记录。目前还没有主键设置——我下面使用的查询是我希望添加到另一个表的INSERT语句中的查询,只要我只获得一次每个用户的最佳尝试(StudentID),并将该StudentID设置为键。所以你看到我的问题了 我在查询中尝试了一些不同的或最上面的语句,但要么我把它们放在了查询的错误部分,要么它们仍然为一个尝试得分相同的用户返回两条记录。有什么建议吗在多次用户尝试中选择最大值的SQL JOIN在两次尝试具有相同值时返回两个值,sql,sql-server,Sql,Sql Server,大家早上好 我有一个非常简单的SELECT/JOIN语句,它从放置测试中获取一些导入的数据,并返回用户所做的得分最高的尝试,即最佳得分。用户可以多次参加此测试,因此我们只需进行最佳尝试。如果用户多次尝试(比如说,尝试两次),两次都得到相同的分数,该怎么办 我当前的查询最终返回这两条记录,因为它们都相等,所以MAX()同时返回这两条记录。目前还没有主键设置——我下面使用的查询是我希望添加到另一个表的INSERT语句中的查询,只要我只获得一次每个用户的最佳尝试(StudentID),并将该Stude
SELECT p.*
FROM
(SELECT
StudentID, MAX(PlacementResults) AS PlacementResults
FROM AleksMathResults
GROUP BY StudentID)
AS mx
JOIN AleksMathResults p ON mx.StudentID = p.StudentID AND mx.PlacementResults = p.PlacementResults
ORDER BY
StudentID
听起来您想要
行号()
:
听起来您想要
行号()
:
SELECT amr.*
FROM (SELECT amr.*
ROW_NUMBER() OVER (PARTITION BY StudentID ORDER BY PlacementResults DESC) as seqnum
FROM AleksMathResults amr
) amr
WHERE seqnum = 1;