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

主頁 > 知識庫 > 僅用一句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久久久久久久久| 国产精品一线二线三线| 久久综合九色综合97_久久久 | 中文字幕亚洲不卡| 国产精品福利av| 成人免费一区二区三区在线观看| 国产精品久久一级| 中文字幕一区二区三区蜜月| 欧美一区二区在线视频| 国产主播一区二区| 日韩成人一级片| 亚洲制服丝袜在线| 亚洲精品乱码久久久久久黑人 | 精品一二三四区| 欧美电影免费观看完整版| 久久99国产精品麻豆| 精品三级在线观看| 91精品国产入口在线| 国产精品99久久久久| 日本不卡不码高清免费观看| 亚洲乱码国产乱码精品精98午夜 | 国产精品自产自拍| 精品一区二区在线免费观看| 美女国产一区二区三区| 久久国产麻豆精品| 韩国精品久久久| 国产在线一区观看| 国产成人精品午夜视频免费| 国产东北露脸精品视频| 成人三级在线视频| av在线一区二区| 91成人免费在线视频| 欧美日韩二区三区| 在线看国产日韩| 成人免费视频一区| 亚洲国产欧美另类丝袜| 国产精品毛片a∨一区二区三区| 精品欧美一区二区在线观看| 6080日韩午夜伦伦午夜伦| 精品国产乱码久久久久久闺蜜| 久久久噜噜噜久久中文字幕色伊伊| 日韩一区二区三| 欧美图片一区二区三区| 一本大道久久精品懂色aⅴ| 日本成人超碰在线观看| 韩国女主播一区二区三区| 亚洲成人中文在线| 日韩黄色一级片| 成人福利视频在线| 一本色道久久加勒比精品 | 成人91在线观看| 色一情一乱一乱一91av| 91精品国产欧美日韩| 国产日韩高清在线| 亚洲一区二区四区蜜桃| 精品一区二区三区在线播放| 99久久99久久综合| 337p亚洲精品色噜噜狠狠| 欧美激情一区二区三区在线| 亚洲国产精品久久久男人的天堂| 久久精品国产精品青草| 日本久久电影网| 日韩欧美一卡二卡| 一级女性全黄久久生活片免费| 蜜桃视频一区二区| 欧洲视频一区二区| 国产日韩欧美精品综合| 日韩av中文在线观看| 91碰在线视频| 国产免费久久精品| 激情文学综合网| 欧美一区二区三区免费大片| 亚洲欧美视频在线观看视频| 国产精品一区一区三区| 欧美一区二区三区小说| 亚洲一区二区综合| 99久久婷婷国产精品综合| 欧美精品一区二区三区蜜桃| 日韩高清在线一区| 在线精品国精品国产尤物884a| 中文字幕一区二| 国产精品中文有码| 欧美成人精品福利| 麻豆国产一区二区| 日韩欧美第一区| 蜜桃视频第一区免费观看| 制服丝袜亚洲色图| 日韩av电影免费观看高清完整版 | 色吊一区二区三区| 国产精品嫩草99a| 波多野结衣中文字幕一区二区三区 | www.日本不卡| 国产精品国产三级国产普通话三级 | 精品sm捆绑视频| 国产主播一区二区三区| 国产欧美日韩另类视频免费观看| 国产河南妇女毛片精品久久久| www成人在线观看| 成人亚洲一区二区一| 一区在线观看免费| 色88888久久久久久影院野外| 亚洲一区视频在线| 欧美一卡二卡三卡| 久久99国产精品免费| 日本一区二区三级电影在线观看| 国产成人99久久亚洲综合精品| 中文字幕第一区综合| 91黄色在线观看| 水蜜桃久久夜色精品一区的特点| 91精品国产综合久久香蕉的特点| 蜜臀国产一区二区三区在线播放| 久久久午夜精品理论片中文字幕| av午夜精品一区二区三区| 91精品国产综合久久小美女| 五月天亚洲婷婷| 国产午夜精品美女毛片视频| 欧美在线视频不卡| 国产真实精品久久二三区| 一区二区三区在线观看网站| 91精品国产综合久久精品| 成人一区在线观看| 午夜久久久久久久久| 国产亚洲精品精华液| 欧美性大战久久久| 蜜臀av性久久久久蜜臀av麻豆| 欧美亚洲动漫制服丝袜| 一区二区在线观看免费视频播放| 欧美电视剧免费观看| 欧美专区在线观看一区| 国产精品一区二区果冻传媒| 亚洲午夜久久久久久久久电影网 | 26uuu亚洲综合色| 欧美亚洲一区二区在线| 99久久久久免费精品国产| 精品一区二区三区香蕉蜜桃 | 亚洲成人精品一区| |精品福利一区二区三区| 国产亚洲一本大道中文在线| 制服丝袜在线91| 欧美日本视频在线| 欧美性感一区二区三区| 色婷婷精品大视频在线蜜桃视频| 国产一区二区美女| 日韩精品亚洲一区| 亚洲国产va精品久久久不卡综合| 1024精品合集| 亚洲欧洲日韩av| 中文字幕在线观看一区二区| 国产欧美日产一区| 国产日产欧美一区| 欧美国产日韩精品免费观看| 国产调教视频一区| 国产欧美一区二区三区沐欲| 久久久蜜桃精品| 久久精品男人的天堂| 久久精品视频在线免费观看| 欧美极品美女视频| 中文字幕国产精品一区二区| 中文字幕在线不卡一区二区三区| 国产精品嫩草久久久久| 日韩理论片一区二区| 亚洲精品国产精华液| 一区二区高清免费观看影视大全| 亚洲线精品一区二区三区| 亚洲大片一区二区三区| 午夜精品爽啪视频| 久久av中文字幕片| 国产99久久精品| 久久综合精品国产一区二区三区| 久久精品欧美日韩| 亚洲精品第一国产综合野| 日韩综合小视频| 国产一区在线不卡| 色综合一个色综合| 日韩欧美一区中文| 欧美国产综合一区二区| 一区二区三区欧美视频| 麻豆精品视频在线| 北条麻妃国产九九精品视频| 欧美性欧美巨大黑白大战| 亚洲精品一区二区三区四区高清| 日韩一区在线播放| 日韩va欧美va亚洲va久久| 成人深夜福利app| 日韩视频一区在线观看| 国产精品卡一卡二卡三| 奇米色一区二区| 99re热这里只有精品免费视频| 91麻豆精品国产91久久久| 欧美极品美女视频| 青草av.久久免费一区| 色视频成人在线观看免| 精品久久久久av影院| 亚洲成人中文在线| 99精品久久免费看蜜臀剧情介绍| 欧美成人一级视频| 亚州成人在线电影| 一本色道久久综合精品竹菊| 久久精品亚洲麻豆av一区二区| 日本视频中文字幕一区二区三区|