gpt4 book ai didi

MySQL:按查询获取组中的最新值

转载 作者:可可西里 更新时间:2023-11-01 08:20:52 26 4
gpt4 key购买 nike

我有两个表 questionsansweredanswered 包含所有用户的所有问题的答案。一个用户可以多次回答一个问题。可以正确或错误地回答问题。

我正在寻找一个查询,该查询将返回一个类别中所有问题的正确和错误答案的计数。 不过,我只想使用最新的答案。因此,如果用户之前错误地回答了同一个问题,而最近又正确地回答了同样的问题,我只想计算最新的 - 正确的 - 一个。

这是我到目前为止得到的:

http://sqlfiddle.com/#!2/31e2e/2/0

SELECT a.correct, count(*) as count
FROM answered a JOIN questions q ON a.question_id = q.id
WHERE a.user_id = 1 AND q.category_id = 1
GROUP BY correct

返回

|  CORRECT  |  COUNT  |
-----------------------
| 0 | 2 |
-----------------------
| 1 | 4 |
-----------------------

我想要的是

|  CORRECT  |  COUNT  |
-----------------------
| 0 | 1 |
-----------------------
| 1 | 2 |
-----------------------

最佳答案

这是您需要的查询:

SELECT a.correct, count(*) as counter
FROM answered a
JOIN (SELECT user_id, question_id, max(created) as maxCreated
FROM answered
GROUP BY user_id, question_id) aux
ON a.user_id = aux.user_id AND
a.question_id = aux.question_id AND
a.created = aux.maxCreated
JOIN questions q ON a.question_id = q.id
WHERE a.user_id = 1 AND q.category_id = 1
GROUP BY a.correct

使用 aux 子查询仅选择包含给定用户问题的最后答案的行。

关于MySQL:按查询获取组中的最新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11743535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com