gpt4 book ai didi

MySQL。在月末开始新行

转载 作者:行者123 更新时间:2023-11-30 21:52:35 27 4
gpt4 key购买 nike

我想知道有没有办法解决这个问题。

所以我的行有一个日期类型的列,每天增加 1 天(直到相应月份的月底)。在新月份的开始,必须生成一个新行,并且更新将再次开始,直到那个月的和,依此类推。

最佳答案

这是一种思考 MySQL 的 SQL 方言中的问题的方法。

首先,您需要一个函数来将 datestamp 更改为每个月唯一的值。即 LAST_DAY(datestamp)。它根据任意输入生成 DATETIME 值,例如 2017-09-30 00:00:00

接下来,您可以利用 MySQL 的 INSERT ... ON DUPLICATE KEY UPDATE 功能。您将创建一个 months 表,其中包含这些列

   month_ending DATETIME
category VARCHAR(20)
sum_of_input INT

然后你将month_ending, category做成一个唯一的复合索引。

然后你做这样的事情

 INSERT INTO months                    /* warning! not debugged! */
(month_ending, category, sum_of_input)
VALUES (LAST_DAY(?date), ?category, ?value)
ON DUPLICATE KEY
UPDATE months
SET sum_of_input = sum_of_input + ?value
WHERE month_ending=LAST_DAY(?date)
AND category=?category

但是,这具有难以调试的特点,让人头疼。使用 ETL 系统内部的功能来完成这种汇总工作更有意义。

关于MySQL。在月末开始新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46602231/

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