Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在多次用户尝试中选择最大值的SQL JOIN在两次尝试具有相同值时返回两个值_Sql_Sql Server - Fatal编程技术网

在多次用户尝试中选择最大值的SQL JOIN在两次尝试具有相同值时返回两个值

在多次用户尝试中选择最大值的SQL JOIN在两次尝试具有相同值时返回两个值,sql,sql-server,Sql,Sql Server,大家早上好 我有一个非常简单的SELECT/JOIN语句,它从放置测试中获取一些导入的数据,并返回用户所做的得分最高的尝试,即最佳得分。用户可以多次参加此测试,因此我们只需进行最佳尝试。如果用户多次尝试(比如说,尝试两次),两次都得到相同的分数,该怎么办 我当前的查询最终返回这两条记录,因为它们都相等,所以MAX()同时返回这两条记录。目前还没有主键设置——我下面使用的查询是我希望添加到另一个表的INSERT语句中的查询,只要我只获得一次每个用户的最佳尝试(StudentID),并将该Stude

大家早上好

我有一个非常简单的SELECT/JOIN语句,它从放置测试中获取一些导入的数据,并返回用户所做的得分最高的尝试,即最佳得分。用户可以多次参加此测试,因此我们只需进行最佳尝试。如果用户多次尝试(比如说,尝试两次),两次都得到相同的分数,该怎么办

我当前的查询最终返回这两条记录,因为它们都相等,所以MAX()同时返回这两条记录。目前还没有主键设置——我下面使用的查询是我希望添加到另一个表的INSERT语句中的查询,只要我只获得一次每个用户的最佳尝试(StudentID),并将该StudentID设置为键。所以你看到我的问题了

我在查询中尝试了一些不同的或最上面的语句,但要么我把它们放在了查询的错误部分,要么它们仍然为一个尝试得分相同的用户返回两条记录。有什么建议吗

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;