gpt4 book ai didi

mysql - SQL 计算 id = x 的行数以及同一表中分组的其他 max(id) 行数

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

我需要计算一个表中字段 event_id = 17 的行数,并且它们不是表中具有更高 g_event_id 且 prim_cid 值相同的任何其他记录。我的表包含电话调用事件。同一调用的所有事件共享“prim_cid”字段。如果字段 event_id = 17 我知道该调用位于 queuee 中,但一旦它应答表中的新条目(相同的 prim_cid),但会发生其他 event_id 。所以我需要计算 event_id = 17 的行,并且没有具有相同 prim_cid 的后续记录。

我的 table :

事件:

g_event_id   prim_cid   event_id   event_time
---------- -------- -------- ----------
1 1 16 2016-10-21 16:00:00
2 1 17 2016-10-21 16:00:01
3 1 18 2016-10-21 16:00:02
4 2 15 2016-10-21 16:01:01
5 2 17 2016-10-21 16:01:02
6 3 16 2016-10-21 16:02:01
7 3 17 2016-10-21 16:02:02
8 3 18 2016-10-21 16:02:38

从中我想得到结果:

1 

(因为只有 prim_cid 2 在字段 g_event_id 上没有更高的记录)我还想在获得记录的位置进行选择:

g_event_id   prim_cid   event_id   event_time
---------- -------- -------- ----------
5 2 17 2016-10-21 16:01:02

当然是在另一个sql中选择:)

最佳答案

您想要计算“知道”event_id 17 但没有其他 g_event_id 高于 17 事件的 g_event_id 的 prim_cids。这直接翻译成 SQL:

SELECT COUNT(DISTINCT seventeens.`prim_cid`)
FROM `events` AS seventeens
LEFT JOIN `events` AS laters ON (seventeens.`prim_cid` = laters.`prim_cid` AND laters.`g_event_id` > seventeens.`g_event_id`)
WHERE seventeens.`event_id` = 17
AND ISNULL(laters.`prim_cid`)

为了完成第二条语句,您可以对同一语句使用以下 SELECT 子句:

SELECT DISTINCT seventeens.* 
FROM ...

关于mysql - SQL 计算 id = x 的行数以及同一表中分组的其他 max(id) 行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40191162/

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