婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 僅用一句SQL更新整張表的漲跌幅、漲跌率的解決方案

僅用一句SQL更新整張表的漲跌幅、漲跌率的解決方案

熱門標簽:武漢AI電銷機器人 地圖標注如何弄全套標 萬利達綜合醫院地圖標注點 實體店地圖標注怎么標 外呼系統會封嗎 在電子版地圖標注要收費嗎 南京電銷外呼系統哪家好 股票配資電銷機器人 電銷機器人 深圳

問題場景

各大平臺店鋪的三項評分(物流、服務、商品)變化情況;
商品每日價格的變化記錄;
股票的實時漲跌??;

復現場景

表:主鍵ID,商品編號,記錄時的時間,記錄時的價格,創建時間。
問題:獲取每個商品每次的變化情況(漲跌幅、漲跌率)。

解決思路

1、要想高效率的更新漲跌,就肯定不能是逐條數據更新,要通過自連表建立起對應關系,將每一條數據關聯到上一次的價格數據。

2、由于數據庫非常龐大,所以可能存在很多垃圾數據,就比如說相關的字段值為NULL或者非有效值的,這些數據要先排除掉。

SELECT id,goods_code,goods_date,goods_price FROM test_goods_price_change WHERE goods_price IS NOT NULL AND goods_date IS NOT NULL;

3、然后在獲取每條數據的上一條數據,同樣也要先排除掉垃圾數據。

SELECT tmp_a.*, MAX(tmp_b.goods_date) AS last_date FROM 
( SELECT id,goods_code,goods_date,goods_price FROM test_goods_price_change WHERE goods_price IS NOT NULL AND goods_date IS NOT NULL ) AS tmp_a
LEFT JOIN
( SELECT id,goods_code,goods_date,goods_price FROM test_goods_price_change WHERE goods_price IS NOT NULL AND goods_date IS NOT NULL ) AS tmp_b
ON tmp_a.goods_code = tmp_b.goods_code AND tmp_a.goods_date > tmp_b.goods_date GROUP BY tmp_a.id;

4、獲取到上一條數據后,獲取上條數據對應的商品價格。

SELECT tmp_ab.*,tmp_c.goods_price AS last_price FROM 
(
	SELECT tmp_a.*, MAX(tmp_b.goods_date) AS last_date FROM 
	( SELECT id,goods_code,goods_date,goods_price FROM test_goods_price_change WHERE goods_price IS NOT NULL AND goods_date IS NOT NULL ) AS tmp_a
	LEFT JOIN
	( SELECT id,goods_code,goods_date,goods_price FROM test_goods_price_change WHERE goods_price IS NOT NULL AND goods_date IS NOT NULL ) AS tmp_b
	ON tmp_a.goods_code = tmp_b.goods_code AND tmp_a.goods_date > tmp_b.goods_date GROUP BY tmp_a.id
) AS tmp_ab 
LEFT JOIN (SELECT id,goods_code,goods_date,goods_price FROM test_goods_price_change WHERE goods_price IS NOT NULL AND goods_date IS NOT NULL ) AS tmp_c
ON tmp_ab.goods_code = tmp_c.goods_code AND tmp_c.goods_date = tmp_ab.last_date ORDER BY tmp_ab.id;

5、獲取到上條數據以及對應的價格后,開始進行計算,獲取到最終的結果。

SELECT 
	*, 
	(CONVERT(goods_price, DECIMAL(10,2)) - CONVERT(last_price, DECIMAL(10,2))) AS '漲跌幅',
	ROUND((CONVERT(goods_price, DECIMAL(10,2)) - CONVERT(last_price, DECIMAL(10,2)))/CONVERT(last_price, DECIMAL(10,2)), 2) AS '漲跌率' 
FROM (
	SELECT tmp_ab.*,tmp_c.goods_price AS last_price FROM 
	(
		SELECT tmp_a.*, MAX(tmp_b.goods_date) AS last_date FROM 
		( SELECT id,goods_code,goods_date,goods_price FROM test_goods_price_change WHERE goods_price IS NOT NULL AND goods_date IS NOT NULL ) AS tmp_a
		LEFT JOIN
		( SELECT id,goods_code,goods_date,goods_price FROM test_goods_price_change WHERE goods_price IS NOT NULL AND goods_date IS NOT NULL ) AS tmp_b
		ON tmp_a.goods_code = tmp_b.goods_code AND tmp_a.goods_date > tmp_b.goods_date GROUP BY tmp_a.id
	) AS tmp_ab 
	LEFT JOIN (SELECT id,goods_code,goods_date,goods_price FROM test_goods_price_change WHERE goods_price IS NOT NULL AND goods_date IS NOT NULL ) AS tmp_c
	ON tmp_ab.goods_code = tmp_c.goods_code AND tmp_c.goods_date = tmp_ab.last_date ORDER BY tmp_ab.id
) AS tmp

解決方案

-- 創建表SQL
CREATE TABLE `test_goods_price_change` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
  `goods_code` varchar(50) NOT NULL COMMENT '商品編碼',
  `goods_date` int(11) NOT NULL COMMENT '記錄時的時間',
  `goods_price` decimal(10,2) NOT NULL COMMENT '記錄時的價格',
  `created_at` int(11) NOT NULL COMMENT '創建時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8mb4;

-- 獲取漲跌浮SQL
SELECT 
	*, 
	(CONVERT(goods_price, DECIMAL(10,2)) - CONVERT(last_price, DECIMAL(10,2))) AS '漲跌幅',
	ROUND((CONVERT(goods_price, DECIMAL(10,2)) - CONVERT(last_price, DECIMAL(10,2)))/CONVERT(last_price, DECIMAL(10,2)), 2) AS '漲跌率' 
FROM (
	SELECT tmp_ab.*,tmp_c.goods_price AS last_price FROM 
	(
		SELECT tmp_a.*, MAX(tmp_b.goods_date) AS last_date FROM 
		( SELECT id,goods_code,goods_date,goods_price FROM test_goods_price_change WHERE goods_price IS NOT NULL AND goods_date IS NOT NULL ) AS tmp_a
		LEFT JOIN
		( SELECT id,goods_code,goods_date,goods_price FROM test_goods_price_change WHERE goods_price IS NOT NULL AND goods_date IS NOT NULL ) AS tmp_b
		ON tmp_a.goods_code = tmp_b.goods_code AND tmp_a.goods_date > tmp_b.goods_date GROUP BY tmp_a.id
	) AS tmp_ab 
	LEFT JOIN (SELECT id,goods_code,goods_date,goods_price FROM test_goods_price_change WHERE goods_price IS NOT NULL AND goods_date IS NOT NULL ) AS tmp_c
	ON tmp_ab.goods_code = tmp_c.goods_code AND tmp_c.goods_date = tmp_ab.last_date ORDER BY tmp_ab.id
) AS tmp

到此這篇關于僅用一句SQL更新整張表的漲跌幅、漲跌率的文章就介紹到這了,更多相關SQL更新整張表內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Mysql update多表聯合更新的方法小結
  • mysql實現查詢數據并根據條件更新到另一張表的方法示例
  • 如何使用MySQL一個表中的字段更新另一個表中字段
  • Mysql 根據一個表數據更新另一個表的某些字段(sql語句)
  • MySQL數據庫同時查詢更新同一張表的方法
  • mysql用一個表更新另一個表的方法

標簽:武威 泰安 安徽 濟源 濟寧 臺州 汕頭 廣東

巨人網絡通訊聲明:本文標題《僅用一句SQL更新整張表的漲跌幅、漲跌率的解決方案》,本文關鍵詞  僅用,一句,SQL,更新,整張,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《僅用一句SQL更新整張表的漲跌幅、漲跌率的解決方案》相關的同類信息!
  • 本頁收集關于僅用一句SQL更新整張表的漲跌幅、漲跌率的解決方案的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    中文字幕一区二区三区视频| 国产欧美一区二区精品久导航| 欧美高清性hdvideosex| 精品免费视频一区二区| 国产mv日韩mv欧美| 亚洲欧美在线观看| 中文在线资源观看网站视频免费不卡| 国产精品不卡一区| 欧美午夜片在线看| 国产麻豆一精品一av一免费| 久久九九影视网| 国产精品传媒入口麻豆| 欧美v亚洲v综合ⅴ国产v| 欧美日韩中文国产| 精品91自产拍在线观看一区| 99国产精品久久久久久久久久 | 欧美性一二三区| 91精品国模一区二区三区| 成人精品视频.| 欧美日韩中文字幕一区| 欧美日韩国产一级| 国产传媒一区在线| 亚洲欧美激情在线| 欧美经典一区二区| 色综合色狠狠综合色| 99久久99久久综合| 成人av影院在线| 日韩小视频在线观看专区| 亚洲视频一二三| 精品国产乱码久久久久久老虎| 精品国产91乱码一区二区三区| 777亚洲妇女| 亚洲精品伦理在线| 国产不卡视频在线观看| 国产精品免费视频观看| 99久久免费国产| 天堂一区二区在线免费观看| 狠狠色狠狠色综合日日91app| 欧美乱妇15p| 亚洲v日本v欧美v久久精品| 欧美一级国产精品| 亚洲国产精品二十页| 亚洲国产成人av好男人在线观看| 欧美视频中文字幕| 国产精品国产a| 蜜臀av性久久久久av蜜臀妖精| 精品国产1区二区| 国产精品久久久久久久久免费相片 | 国产成人aaa| 国产成人亚洲精品青草天美| 国产精品18久久久| 蜜臀va亚洲va欧美va天堂| 欧美韩国一区二区| 成人av网站在线| 日韩精品一二三四| 国产精品一区在线观看你懂的| 日韩免费视频一区二区| 国产精品理论片| 亚洲欧美综合网| 91免费国产视频网站| 国产精品不卡在线| 黑人巨大精品欧美一区| 看片的网站亚洲| 亚洲欧美日韩久久| 一区二区三区在线视频观看| 91免费观看视频| 欧美日韩久久久一区| 午夜av一区二区| 日韩一区二区三区免费观看| 亚洲综合在线观看视频| 国产午夜精品在线观看| 怡红院av一区二区三区| 99精品国产热久久91蜜凸| 亚洲欧美自拍偷拍色图| 欧美福利电影网| 国产91精品精华液一区二区三区| 国产网红主播福利一区二区| 91亚洲男人天堂| 激情综合色综合久久| 国产精品色眯眯| 91黄色激情网站| 免费在线观看视频一区| 精品久久久久久久久久久久久久久久久| 国产91清纯白嫩初高中在线观看 | 激情五月播播久久久精品| 久久―日本道色综合久久| 国产不卡免费视频| 日本一区二区三区国色天香 | 亚洲国产精品综合小说图片区| 欧美三级日韩三级国产三级| 中文字幕亚洲综合久久菠萝蜜| 国产乱子伦一区二区三区国色天香| 国产午夜亚洲精品理论片色戒 | 在线观看不卡视频| av爱爱亚洲一区| 不卡的电视剧免费网站有什么| 成人a免费在线看| 久久精品国产77777蜜臀| 亚洲国产精品欧美一二99| 精品国产成人在线影院| www.日韩在线| 韩国女主播成人在线观看| 国产成人av在线影院| 亚洲成va人在线观看| 午夜精品影院在线观看| 国产成人午夜电影网| 人禽交欧美网站| 亚洲一区在线电影| 亚洲精品国产成人久久av盗摄| 国产精品视频一二三区| 久久一区二区三区四区| 884aa四虎影成人精品一区| 91在线免费播放| 色女孩综合影院| 欧美优质美女网站| 91精品国产色综合久久ai换脸| 911精品产国品一二三产区| 91超碰这里只有精品国产| 日韩精品一区二区三区在线播放| 欧美老女人在线| 欧美刺激脚交jootjob| 欧美一a一片一级一片| 91官网在线免费观看| 天天综合网天天综合色| 日本 国产 欧美色综合| 国产一区激情在线| 色哟哟在线观看一区二区三区| 欧美三级欧美一级| 欧美猛男男办公室激情| 精品久久久久久久人人人人传媒| 国产精品视频九色porn| 亚洲成人av一区二区三区| 国产69精品久久777的优势| 精品一区二区综合| 成人三级伦理片| 91精品国产乱码| 国产精品第13页| 国产精品99久久久久久有的能看| 欧美日韩视频第一区| 亚洲色图视频网| 国产精品一级黄| 欧美日韩在线直播| 国产偷国产偷亚洲高清人白洁| 亚洲视频一区二区免费在线观看| 免费成人av在线播放| 91一区在线观看| 久久精品一区二区三区不卡 | 黄色小说综合网站| 欧美三级在线播放| 欧美国产精品劲爆| 久久精品噜噜噜成人av农村| 亚洲另类在线制服丝袜| 国产在线日韩欧美| 欧美一区二区三区性视频| 亚洲成人激情av| 日本韩国一区二区三区视频| 久久精品人人做人人综合| 亚洲高清免费观看高清完整版在线观看| 国产一区久久久| 亚洲人成网站影音先锋播放| 激情五月播播久久久精品| 欧美一级爆毛片| 日韩av不卡在线观看| 欧美三级日韩在线| 亚洲国产视频一区二区| 成人黄色av网站在线| 国产三级一区二区三区| 人人超碰91尤物精品国产| 欧美影院一区二区| 中文字幕在线不卡视频| 不卡电影一区二区三区| 亚洲天天做日日做天天谢日日欢 | 国产精品情趣视频| 国产精品1024久久| 久久久影视传媒| 久久99国产精品免费| 日本一区二区在线不卡| 国产精品主播直播| 中文av一区特黄| 波多野结衣视频一区| 调教+趴+乳夹+国产+精品| 日韩欧美一区二区视频| 极品销魂美女一区二区三区| 中文字幕高清一区| 国产精品自产自拍| 亚洲视频 欧洲视频| 91久久精品一区二区| 午夜激情一区二区三区| 欧美精品一区二区三区蜜桃视频 | 91.com在线观看| 国精产品一区一区三区mba视频| 久久久91精品国产一区二区精品 | 久久午夜羞羞影院免费观看| 在线观看精品一区| 国产一区福利在线| 亚洲成人激情自拍| 中文字幕一区二区三区四区| 欧美高清精品3d| 丁香另类激情小说| 日韩**一区毛片|