gpt4 book ai didi

mysql - SQL 查询困难

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

我正在尝试为在线编码事件网站编写查询,但我发现它特别难以处理。

我有一个表提交:

submissions => subid | uid | pid | subts | status

uid = userid
pid = problem id
subts = timestamp when the submission was submitted
status = whether the answer is right or not

用户可能已经为给定的 pid 提交了多次。

我想知道:谁是最新提交每个问题的解决方案的用户?

目前,我不关心解决方案是对还是错。

我认为可行的查询是

select pid, uid, max(subts) from submissions group by pid;

但它没有按照我想要的方式工作。此查询找到最大 ts 没问题,但与其关联的 uid 不正确。

任何人都可以告诉我我的查询有什么问题吗?什么是为我的目的编写查询的正确方法?

谢谢

注意:我使用的是mysql。

编辑:我可以通过遍历所有 pid 并编写来做到这一点

select pid, uid, max(subts) from submissions where pid=$pid order by subts desc limit 1;

但我真的不想这样做。我想知道单个查询是否可以完成我想要的。如果是,我想知道怎么做。

最佳答案

这比你想象的要复杂一些,但下面的查询应该可以工作:

SELECT s.uid, s.pid, s.subts
FROM submissions s,
(SELECT max(subts) as maxdate, pid
FROM submissions
GROUP BY pid) maxresults
WHERE s.pid = maxresults.pid
AND s.subts = maxresults.maxdate;

是否将此算作单个查询取决于您,但我相信它不能通过单个 SELECT 语句完成。

关于mysql - SQL 查询困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2251102/

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