gpt4 book ai didi

mysql - 如何在 Status=low value 之后找到 Status=act value?

转载 作者:太空宇宙 更新时间:2023-11-03 10:34:05 27 4
gpt4 key购买 nike

我有一张表,上面有如下记录

表A

subid clickid status datetime
1 123 low 2018-07-24 20:20:44
2 123 act 2018-07-24 21:20:44
3 231 act 2018-07-25 20:20:44
4 231 low 2018-07-25 21:20:44
5 789 low 2018-07-26 20:20:44
6 789 act 2018-07-26 21:20:44

上面是我的表格示例。

现在我需要找到 status = 'low' 和 status = 'act' 的那些记录/用户。

我的意思是 clickid 123 和 789 是我需要的输出。

第一个status值应该是low,然后是act。因为一些记录也在那里,比如 status = act first then status = low。例如 clickid=231。但我想要 status=low 然后 status=act。例如 clickid=123&789。

注意:clickid是用户标识

我可以为此使用哪种查询?

最佳答案

如果每个 clickid 始终最多 两条记录,那么您可以使用:

SELECT clickid
FROM TableA
GROUP BY clickid
HAVING MIN(CASE WHEN status = 'low' THEN datetime END) <
MIN(CASE WHEN status = 'act' THEN datetime END)

Demo here

要确保一条记录是“低”而另一条是“行为”,您可以将以下谓词添加到 HAVING:

  • SUM(status = 'low') = 1
  • SUM(status = 'act') = 1

关于mysql - 如何在 Status=low value 之后找到 Status=act value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52051719/

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