五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

MySQL自定義變量

2021-04-10 09:51 作者:愛數(shù)據(jù)分析社區(qū)  | 我要投稿


作者:數(shù)師兄

來源:數(shù)師兄

相信大家對join,where 以及子查詢等等操作已經(jīng)非常熟悉,在此基礎上如果對于mysql的用戶自定義變量再熟練掌握了,那么對于數(shù)據(jù)分析來說就又多了一個工具。雖然這個功能不是經(jīng)常用,但是學來擴展一下自己的知識庫也是好的,免得書到用時方恨少。


今天有機會請到了自定義變量本量來給大家現(xiàn)場說法,咱天就嘮叨嘮叨自定義變量是個啥,是咋工作的。


01

自定義變量:自我介紹

大家好,我是mysql自定義變量,和其他的自定義變量一樣,你們可以把我當作一個小盒子,如果想要召喚我只要大喊一聲


就可以召喚出自定義變量本量,順便把x放裝進了盒子。

心中默念 ?set @ver:='b' ?就可以裝成功,如果心情不好我還可以啥也不裝,比如set @ver:=0,如果召喚我請珍惜我,因為我在一次mysql鏈接中有效。


不要以為我只能散裝,把我安裝在生產(chǎn)線上照樣能行。比如某條sql生產(chǎn)出來一個指標需要存一下,只需要把結果into我就行了,具體操作如下:select count(1) ?into @ver from table想跟裝進去的東西確認眼神么?select @ver,馬上告訴你盒子里現(xiàn)在裝了個啥

我一般不會單獨存在,而是內(nèi)嵌到sql語句里面作為一個存儲中間變量的容器,如果想知道和我sql語句之間是怎么配合的,就不得不了解一下我的小老弟—sql


02

SQL的自我簡介

大家好,我是SQL,是一種數(shù)據(jù)庫操作的工具,也是自定義變量的好大哥。如果能配合EXCEL來了解我,就會發(fā)現(xiàn)我不是一個慢熱的人。能動手咱就不bb,舉個栗子讓你看一下我們倆有多像


栗子如下:


首先我要執(zhí)行子查詢,也就是把a和b兩個中間表搞出來(ab兩個表可以理解為excle的兩個sheet)


然后我再執(zhí)行join語句,對兩個表根據(jù)id進行笛卡爾乘積,得到兩個表的全部信息(主鍵唯一的情況下可以理解為excel的vlookup)


當然有些信息并不是我們需要的,怎么過濾呢,用where語句(相當于excel的篩選功能)


最終以order ?by ?對最終結果進行排序(對應excel的排序功能)


下面說一點細節(jié)可以加深我和自定義標量之間的合作方式


當我select ?想要的列時候(select id from table)可以看成是讀取了一列id,也可以看成是一行一行讀取id列,每取一條記錄,游標往下走一格,當遍歷完所有的數(shù)據(jù)之后再呈現(xiàn)給我們一列id。按照第二種方式相當于是python遍歷數(shù)組,中間自然可以加一些變量來存儲一些數(shù)據(jù)。


有點抽象?舉個例子~


03

舉幾個例子

?某個數(shù)據(jù)表格記錄了AB兩個店每個小時的營業(yè)額,原始數(shù)據(jù)如下



1.如何觀察每天某個時間點A,B兩個店的分別的累計營業(yè)額?

按照上面所說的原理,如果每讀出一條記錄相當于游標往下走一下,我們在遍歷數(shù)據(jù)的過程中用變量對中間結果進行記錄和判斷,那么就能實現(xiàn)上述需求,代碼如下:


????

結果如下:


2.用自定義變量實現(xiàn)row_number()over 開窗

mysq不支持開窗函數(shù),但是引入自定義變量就能實現(xiàn)相同的效果,具體實現(xiàn)代碼如下:

結果如下:


04

后記

Mysql的自定義變量是一個不太常用的功能,因為大數(shù)據(jù)基本上是存儲在hadoop上,操作一般用hive,spark或者impala,他們都自帶一些開窗函數(shù)在一定程度上可以取代自定義變量。但是如果懂自定義變量有可能會解決一些不太好解決的問題。


更多數(shù)據(jù)分析內(nèi)容?

掃描二維碼即可了解


MySQL自定義變量的評論 (共 條)

分享到微博請遵守國家法律
普陀区| 招远市| 肇庆市| 宜川县| 通城县| 九龙城区| 昌黎县| 象山县| 河源市| 崇信县| 天等县| 石泉县| 黑龙江省| 剑川县| 奉新县| 滦南县| 虞城县| 垦利县| 海口市| 湖口县| 密云县| 青田县| 济源市| 河津市| 灵台县| 合阳县| 崇礼县| 陵川县| 太湖县| 黄大仙区| 博湖县| 连州市| 石棉县| 新建县| 舟曲县| 宜黄县| 古田县| 四子王旗| 郸城县| 平南县| 会东县|