gpt4 book ai didi

mysql - 使用 mysql 按数据导入日期按日期在现有数据集中查找唯一/新值

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

我们的 mysql 数据库处理化合物的仓储和季度更新。我们有兴趣寻找最近每季度上传的独特化合物 - 因此以前从未见过的化合物 (ChemID)。

我已经使用我在挖掘类似问题/解决方案时发现的日期范围尝试了下面的一些代码,但无法使其适用于我的应用程序。这是我的尝试 1,它返回 NULL 或变体超时(在 ChemCaseReports 中处理大约 1300 万行)。

请注意,真正的最新 ImportDate(日期时间类型)是“2012-06-12 05:58:16”。

尝试 1:

SELECT DISTINCT ChemID
FROM Chem_CaseReports a
WHERE a.ImportDate = '2012-06-12 05:58:16'
AND NOT EXISTS
(
SELECT * FROM Chem_CaseReports b
WHERE a.ChemID = b.ChemID
AND b.ImportDate <= '2012-06-12 05:58:16'
)

子查询中的 * 是否有必要避免 ChemID.a 和 .b 之间的歧义?我是否需要添加 GROUP BY 或 HAVING 子句,或者最初在我的初始选择中提供像 GROUP_CONCAT 这样的聚合参数。

我有数学学习障碍,所以问题可能很简单,就像在我的日期时间上翻转 gt、eq 或 lt 符号一样简单。

感谢您的帮助!

最佳答案

乍一看,您需要更改的是 <=<

理由

你原来的NOT EXISTS使用 <= 包括您需要保留的所有记录。

语句变成

SELECT DISTINCT ChemID
FROM Chem_CaseReports a
WHERE a.ImportDate = '2012-06-12 05:58:16'
AND NOT EXISTS
(
SELECT * FROM Chem_CaseReports b
WHERE a.ChemID = b.ChemID
AND b.ImportDate < '2012-06-12 05:58:16'
)

关于mysql - 使用 mysql 按数据导入日期按日期在现有数据集中查找唯一/新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11039145/

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