gpt4 book ai didi

mysql - 如何查询 mysql 表中的更改?

转载 作者:行者123 更新时间:2023-11-29 03:43:45 26 4
gpt4 key购买 nike

我有以下 mysql 表结构并将其用作一种日志记录表 (entries_log):

    customer_id  | parent_id     | child_id  | quarter | month
xyz | 21 | 3 | 20121 | 201201
xyz | 21 | 5 | 20121 | 201201
xyz | 21 | 5 | 20122 | 201204
xyz | 21 | 6 | 20122 | 201204
xyz | 21 | 4 | 20123 | 201207
... | ... | .... | .... | ...

希望您对表格有所了解。现在我想追踪每个 customer_id 和 parent 的 child_id 与上一季度相关的每个季度是否有任何上行变化(季度行中可能存在差距,因此以下示例是可能的并且必须考虑:20121...20122....20124).

所以在上面的例子中我只想得到以下输出:

     xyz          |     21        |  5        |  20121  | 201201
xyz | 21 | 6 | 20122 | 201204

我解决了这个问题:

SELECT e.customer_id, e.parent_id, e.child_id, e.month, e.quarter
FROM (
SELECT MAX(month) AS maxmonth, quarter, max(child_id)
FROM entries_log AS e
WHERE EXISTS (
SELECT *
FROM entries_log AS f
WHERE (
SELECT COUNT(*) FROM entries_log AS g
WHERE g.quarter = f.quarter
AND g.month = f.month
) <= 2
AND e.quarter > quarter
AND e.child_id> child_id
)
GROUP BY quarter
) AS x
INNER JOIN entries_log AS e ON e.quarter = x.quarter AND e.month = x.maxmonth;

我读了this网站,这对我帮助很大,但我仍然找不到正确的查询。

感谢您的帮助,谢谢!

最佳答案

正如 Bohemian 所说,这可以通过变量实现。 Explain Extended有一篇关于如何在 MySQL 中实现超前/滞后的文章。您需要添加一些额外的逻辑来处理您的具体要求,但它应该为您指明正确的方向。

关于mysql - 如何查询 mysql 表中的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9633884/

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