gpt4 book ai didi

MYSQL 查询 - 查找与变量列表匹配的多个记录并返回每个记录的最大日期

转载 作者:行者123 更新时间:2023-11-29 05:01:25 25 4
gpt4 key购买 nike

尝试设计一个查询以针对我的“cdr”表运行,我可以在其中输入大约 200 个电话号码,它会将其与表的“src”列匹配并返回基于“calldate”的最新记录"列。

示例表:

+------------------+---------+-------------+
| calldate | src | disposition |
+------------------+---------+-------------+
| 10/23/2019 11:32 | 5551234 | ANSWERED |
| 10/23/2019 11:32 | 5551245 | NO ANSWER |
| 10/23/2019 11:28 | 5551234 | ANSWERED |
| 10/23/2019 11:21 | 5551898 | ANSWERED |
| 10/23/2019 11:20 | 5551245 | NO ANSWER |
| 10/23/2019 11:20 | 5551887 | NO ANSWER |
| 10/23/2019 11:18 | 5551898 | NO ANSWER |
| 10/23/2019 11:18 | 5551887 | NO ANSWER |
| 10/23/2019 11:17 | 5551234 | NO ANSWER |
| 10/23/2019 11:14 | 5551898 | ANSWERED |
| 10/23/2019 11:09 | 5551887 | ANSWERED |
+------------------+---------+-------------+

所以我需要能够提供我的 sql 查询 src#s 因为我的数据库有很多我并不真正关心的记录,即我只想找到 #s 5551234、5551898 和 5551887 发出的最新调用但忽略所有其他人。我还需要确保对返回记录的处理也是“已答复”。

所以到目前为止,我什至没有过滤回答或未回答的尝试如下:

SELECT src, calldate FROM cdr
WHERE src IN (5551234, 5551898, 5551887)
GROUP by src;

这确实返回了 3 条记录,但它们似乎不是最新的。例如 5551234 来自 11-18-2014,这不是最新的记录。我通过运行以下查询确认了这一点:

SELECT * FROM cdr WHERE calldate = (SELECT max(calldate) FROM cdr WHERE src LIKE '5551234');

返回的记录日期为 06-24-2019。

期望返回最新的记录,但它似乎返回随机记录(每次都相同,但它既不是可用的最新记录也不是最旧的记录)。

尝试从逻辑上考虑它,我基本上需要为我提供的每个 IN 条目提取 max(calldate),而不是从 IN 条目的返回记录中提取 max calldate,这导致只返回一个记录。无计可施,无法理清思路。

顺便在mysql上运行这个DB。

最佳答案

你在上一个查询中有部分答案,我会做类似的事情

SELECT src, MAX(calldate) AS last_call
FROM cdr
WHERE src IN (5551234, 5551898, 5551887)
-- AND disposition = 'ANSWERED'
GROUP by src;

关于MYSQL 查询 - 查找与变量列表匹配的多个记录并返回每个记录的最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58526675/

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