校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

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

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

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

問題場景

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

復(fù)現(xiàn)場景

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

解決思路

1、要想高效率的更新漲跌,就肯定不能是逐條數(shù)據(jù)更新,要通過自連表建立起對應(yīng)關(guān)系,將每一條數(shù)據(jù)關(guān)聯(lián)到上一次的價格數(shù)據(jù)。

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

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、然后在獲取每條數(shù)據(jù)的上一條數(shù)據(jù),同樣也要先排除掉垃圾數(shù)據(jù)。

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、獲取到上一條數(shù)據(jù)后,獲取上條數(shù)據(jù)對應(yīng)的商品價格。

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、獲取到上條數(shù)據(jù)以及對應(yīng)的價格后,開始進行計算,獲取到最終的結(jié)果。

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

解決方案

-- 創(chuàng)建表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 '創(chuàng)建時間',
  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

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

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標題《僅用一句SQL更新整張表的漲跌幅、漲跌率的解決方案》,本文關(guān)鍵詞  僅用,一句,SQL,更新,整張,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《僅用一句SQL更新整張表的漲跌幅、漲跌率的解決方案》相關(guān)的同類信息!
  • 本頁收集關(guān)于僅用一句SQL更新整張表的漲跌幅、漲跌率的解決方案的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    一本大道综合伊人精品热热 | 99精品视频中文字幕| 亚洲午夜电影在线观看| 成人欧美一区二区三区1314| 国产亚洲欧洲997久久综合| 337p亚洲精品色噜噜狠狠| 欧美在线视频你懂得| 色综合视频在线观看| 色94色欧美sute亚洲线路一久| 91视频免费看| 成人黄色国产精品网站大全在线免费观看| 精品一区二区三区免费视频| 久久草av在线| 国产一区二区0| 国产成人av福利| aa级大片欧美| 欧美自拍丝袜亚洲| 欧美一级二级在线观看| 精品噜噜噜噜久久久久久久久试看| 日韩一区二区三区高清免费看看| 日韩免费电影一区| 久久久综合激的五月天| 国产精品伦一区| 亚洲欧美另类久久久精品 | 欧美日本乱大交xxxxx| 欧美精品日韩一区| 久久九九99视频| 亚洲综合免费观看高清完整版在线| 亚洲最大色网站| 精品亚洲免费视频| 92国产精品观看| 欧美一级日韩免费不卡| 国产精品午夜电影| 香蕉影视欧美成人| 国产1区2区3区精品美女| 色呦呦网站一区| 欧美精品一区二区三区久久久| 中文在线免费一区三区高中清不卡| 亚洲欧美电影院| 狠狠色综合色综合网络| 色中色一区二区| 久久久久久久网| 午夜精品在线看| 91在线精品秘密一区二区| 6080亚洲精品一区二区| 中文字幕av在线一区二区三区| 午夜日韩在线电影| 不卡视频一二三| 精品99久久久久久| 亚洲成人动漫av| av在线不卡电影| 久久综合九色综合欧美就去吻| 中文字幕一区二区5566日韩| 日本不卡的三区四区五区| 成人激情av网| 国产午夜亚洲精品羞羞网站| 亚洲成人资源在线| 在线观看一区二区精品视频| 久久久99久久| 狠狠色丁香婷婷综合| 欧美亚洲自拍偷拍| 亚洲免费观看高清完整| 国产激情视频一区二区在线观看| 欧美一区在线视频| 亚洲成人av一区二区| 91久久香蕉国产日韩欧美9色| 日本一区二区综合亚洲| 狠狠色伊人亚洲综合成人| 欧美另类一区二区三区| 亚洲国产精品一区二区久久恐怖片| 99久久久无码国产精品| 国产视频一区在线观看| 国产精品资源在线看| 久久亚洲一级片| 久久er99热精品一区二区| 欧美一区二区三区四区高清| 亚洲福利电影网| 精品视频在线视频| 亚洲一线二线三线视频| 欧美日韩一级片在线观看| 一区二区三区不卡在线观看| 色综合久久久久久久久| 亚洲人被黑人高潮完整版| 色综合久久88色综合天天| 亚洲精品国产精华液| 在线视频亚洲一区| 午夜精品久久久久久| 日韩一区二区在线观看| 久久国产欧美日韩精品| 久久综合狠狠综合| 风流少妇一区二区| 亚洲色图欧美偷拍| 欧美视频精品在线| 久久精品国产一区二区| 亚洲精品一区二区三区精华液| 国产毛片精品视频| 中文字幕不卡一区| 欧美在线影院一区二区| 免费高清视频精品| 国产日产精品1区| 成人av在线影院| 精品国产凹凸成av人导航| 国产成人日日夜夜| 一区二区三区视频在线观看| 欧美日韩三级一区二区| 国产做a爰片久久毛片| 亚洲桃色在线一区| 欧美男男青年gay1069videost| 久久99久久久欧美国产| 国产精品伦理一区二区| 亚洲一区在线看| 国产成人av一区二区三区在线| 国产精品乱人伦一区二区| 欧美日韩一区不卡| 国产高清亚洲一区| 日韩高清中文字幕一区| 中文字幕第一区综合| 欧美精品久久天天躁| 99精品热视频| 狠狠色综合色综合网络| 一级特黄大欧美久久久| 欧美v亚洲v综合ⅴ国产v| 91视频在线看| 国产激情91久久精品导航| 亚洲成人av电影在线| 国产日韩欧美精品一区| 欧美三级蜜桃2在线观看| 不卡视频在线看| 国产精品主播直播| 日韩国产欧美在线播放| 一区二区三区蜜桃网| 中文乱码免费一区二区| 久久人人爽人人爽| 精品少妇一区二区三区视频免付费| 91丨porny丨最新| 成熟亚洲日本毛茸茸凸凹| 日韩va亚洲va欧美va久久| 亚洲免费观看高清| 国产精品蜜臀在线观看| 26uuu精品一区二区| 日韩一区二区三区免费看| 欧美三级视频在线观看| 在线免费av一区| 99国产精品久久久久| 成熟亚洲日本毛茸茸凸凹| 国产精品一二三在| 国内精品国产三级国产a久久| 偷窥国产亚洲免费视频| 婷婷亚洲久悠悠色悠在线播放| 亚洲在线免费播放| 一片黄亚洲嫩模| 亚洲免费观看高清完整版在线观看| 国产精品久久久久久久久图文区| 久久久久久久综合狠狠综合| 亚洲精品一区二区在线观看| 欧美一级高清大全免费观看| 欧美一区二区三区思思人| 日韩一区二区高清| 精品国产乱码久久久久久久| 精品国产一区二区精华| 精品国产乱码久久久久久蜜臀| 亚洲综合色区另类av| 欧美成人激情免费网| 欧美一卡2卡3卡4卡| 成人一道本在线| 久久超级碰视频| 成人小视频在线观看| 免费黄网站欧美| 国产成人免费视频网站高清观看视频| 国产一区二区三区在线观看免费视频 | 精品久久一区二区三区| 久久夜色精品一区| 欧美一区二区免费| www久久久久| 亚洲品质自拍视频网站| 国产精品成人午夜| 午夜精品视频在线观看| 日韩国产精品久久久久久亚洲| 另类人妖一区二区av| 国产成人亚洲综合a∨猫咪| 国产成人亚洲精品青草天美 | 亚洲精品免费播放| 视频一区视频二区中文字幕| 日韩在线播放一区二区| 精品午夜久久福利影院| 国产一区二区在线免费观看| 一本到高清视频免费精品| 五月开心婷婷久久| 国产乱子轮精品视频| 91电影在线观看| 91精品免费在线| 中文字幕亚洲在| 一区二区三区电影在线播| 激情小说欧美图片| 欧美亚洲一区二区三区四区| 欧美精品成人一区二区三区四区| 国产校园另类小说区| 亚洲精品欧美在线| 国产成人精品一区二| 欧美日韩亚洲综合|