gpt4 book ai didi

mysql - 具有滚动自连接的 SQL 更新

转载 作者:行者123 更新时间:2023-11-29 08:28:30 24 4
gpt4 key购买 nike

我想将年增长率添加到创建的年度行业销售数据表中(基本字段):

CREATE  TABLE IF NOT EXISTS MarketSizes (
marketSizeID INT PRIMARY KEY AUTO_INCREMENT ,
industry INT NOT NULL,
year INT NOT NULL,
countryID INT NOT NULL REFERENCES Countries (countryID),
annualSales DEC(20,2) NULL,
growthRate DEC(5,2) NULL)

考虑到大约 25 年、100 多个国家和 5000 多个行业的年度数据,填充/更新 GrowthRate 列的最有效方法是什么?最有效的索引方式是(行业、年份、国家/地区ID)吗?谢谢你的时间!

最佳答案

考虑将增长率放在 View 中:

CREATE VIEW growthRate AS
SELECT
m1.*,
(m1.annualSales - m2.annualSales) / m2.annualSales AS growthRate
FROM
MarketSizes m1
LEFT JOIN MarketSizes m2 ON m1.industry = m2.industry
AND m1.countryID = m2.countryID
AND m2.year = m1.year - 1

根据(行业、国家ID)和年份创建索引,它应该具有足够的性能。

关于mysql - 具有滚动自连接的 SQL 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17331616/

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