gpt4 book ai didi

mysql - SQL : find based on previous id

转载 作者:行者123 更新时间:2023-11-29 07:09:04 24 4
gpt4 key购买 nike

我有如下表格:

mysql> select * from tries;
+----+--------+-----------+
| id | person | succeeded |
+----+--------+-----------+
| 1 | 1 | 1 |
| 2 | 1 | 1 |
| 3 | 2 | 0 |
| 4 | 4 | 1 |
| 5 | 2 | 1 |
| 6 | 2 | 0 |
| 7 | 3 | 0 |
| 8 | 3 | 0 |
| 9 | 3 | 0 |
| 10 | 1 | 0 |
| 11 | 4 | 1 |
| 12 | 4 | 1 |
+----+--------+-----------+

我想要那些(至少)有一次 try 成功的人,然后是 try 失败的人(由 10,分别)。当我说“关注”时,我指的是同一个人之前的尝试,由较低的 id 给出。

所以在这种情况下:

  • 第 2 个人在 id = 5 上成功,而在 id = 3 上失败,这是该人之前的尝试,因此符合标准。
  • 第 1 个人没有在失败之后立即取得成功,因此不符合标准
  • 第 3 个人没有成功,因此不符合标准
  • 人 4 没有失败,因此不符合标准

我将如何编写这样的查询?

最佳答案

SELECT t1.person, MIN(t1.id) as SuccessID
FROM tries t1
WHERE t1.succeeded = 1
AND t1.person IN (SELECT t2.person
FROM tries t2
WHERE t2.succeeded = 0
AND t2.id < t1.id)
GROUP BY t1.person

关于mysql - SQL : find based on previous id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5654894/

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