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

如何仅在其他行的上下文中读取具有匹配条件的行

如何解决如何仅在其他行的上下文中读取具有匹配条件的行

如何得到以下问题的结果,给定这张表:

uid | id  | start_time            |  end_time             |
------------------------------------------------------
1   | 111 | 2021-04-21 10:00:00   |  2021-04-21 10:00:00  |
2   | 111 | 2021-04-21 10:00:00   |  2021-04-21 10:10:00  |
3   | 111 | 2021-04-21 10:00:00   |  2021-04-21 10:10:00  |
4   | 112 | 2021-04-21 10:00:00   |  2021-04-21 10:10:00  |
5   | 113 | 2022-02-11 08:00:00   |  2022-02-11 08:10:00  |  

我需要找到那些具有不同 ID 和更大的结束日期作为开始日期的行。 在此表中,这将是 UID 为 2、3 和 4 的行,而第 4 行是最有趣的行。

不幸的是我的尝试不起作用:

SELECT uid,id,count(id) as NoID,start_time,end_time 
FROM `table` 
GROUP BY id,start_date 
HAVING COUNT(disTINCT(id))>1 AND COUNT(start_time)>1 AND (end_time)>(start_time) 

我没有找到一种如何告诉 MysqL 它应该返回 id 4 的方法,它只能在 is 2 和 3 的上下文中找到。

有人有想法吗?谢谢!

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