微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在GROUP_CONCATdistinct..中添加限制

如何解决无法在GROUP_CONCATdistinct..中添加限制

SELECT 
    quiz.id AS quizId,quiz.name AS quizName,GROUP_CONCAT(distinct(quiz_attempt.quiz_attempt_status)
        ORDER BY quiz_attempt.id DESC limit 1) AS quizAttemptStatus
FROM
    course
        LEFT JOIN
    quiz ON quiz.id = course.quiz
        LEFT JOIN
    quiz_attempt ON quiz_attempt.quiz = quiz.id
WHERE
    (course.id = 'courseId'
        AND quiz_attempt.user = 'userId' )
GROUP BY quiz.id,quiz_attempt.id

当我在GROUP_CONCAT(distinct(...))内添加限制时,它不起作用,我希望对课程中的每个测验进行最新尝试。怎么做?

解决方法

尝试使用行号,然后仅获取第一个行号?

ROW_NUMBER() OVER (
    [PARTITION BY partition_expression,... ]
    ORDER BY sort_expression [ASC | DESC],...
)

还可以在此处查看更多信息: https://www.sqlservertutorial.net/sql-server-window-functions/sql-server-row_number-function/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。