<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
當需要的結果需要經過多次處理後才能最終得到我們需要的結果時,就可以使用臨時表,這裡臨時表就起到了一箇中間處理的作用,實現了分步處理,簡化了問題。
pln_order_pool_detail(表名)
需要得到訂單平均交付週期、最大交付週期、最小交付週期,為了實現這一需求,首先我們要求出每個訂單的交付週期,其次我們需要將這些訂單的交付週期求其平均值。
SELECT AVG( leadTime ) avgLeadTime, MAX( leadTime ) maxLeadTime, MIN( leadTime ) minLeadTime FROM ( SELECT DATEDIFF(reality_deliver_time,create_time) AS leadTime FROM pln_order_pool WHERE order_state = 'finish' ) a
其中 SELECT DATEDIFF(reality_deliver_time,create_time) AS leadTime FROM pln_order_pool WHERE order_state = 'finish' 是求出每個訂單的交付週期作為臨時表,每個訂單的交付週期即狀態(order_state)為'finish'的訂單的實際交付時間(reality_deliver_time)減去該訂單的建立時間(create_time)
DATEDIFF(reality_deliver_time,create_time):該函數表示實際交付日期(reality_deliver_time)與建立日期(create_time)的間隔,且結果是以天數進行返回
AVG( leadTime ):將臨時表中的交付週期通過AVG函數求出平均交付週期
MAX( leadTime):將臨時表中的交付週期通過MAX函數求出最大交付週期
MIN( leadTime):將臨時表中的交付週期通過MIN函數求出最小交付週期
在實際開發中經常會碰到一個欄位下儲存的結果不同,而我又需要對這兩個結果進行處理得到最終的結果,此時如果沒有臨時表我們就可能需要寫兩個sql語句分別得到結果,然後在後端進行運算得到最終需要的結果。
也許上面的概述表述並不清楚,現在用一個範例來說明。
像這樣的一個表結構,我想要計算2022年8月9號這一天的計劃完成率,那就需要計算該日期的計劃數和計劃完成數的比值,也就是計算該日期的實出對應的數量與該日期的計劃對應的數量的比值,但是上面的表結構中計劃與實出都在type一個欄位下,我又該如何將where條件設定為type等於“計劃”求出計劃數,同時又將where條件設定為type等於“實出”求出實際完成的數量呢?
plan(表名)
求出2022年8月9號一天的計劃完成率
SELECT planNums, finishNums, IFNULL( ROUND( finishNums / planNums * 100, 2 ), 0 ) finishRate FROM ( SELECT SUM( num ) planNums FROM plan WHERE type = '計劃' AND date = '2022-08-09') a, ( SELECT SUM( num ) finishNums FROM plan WHERE type = '實出' AND date = '2022-08-09') b
針對上述的問題,我們使用臨時表就可以完美的解決,根據條件的不同我們建立兩個臨時表,分別記錄當天的計劃總數和當天的實際完成的數量,實現分層處理,最後我們再將臨時表中的資料進行運算就可以得到當天的計劃完成率。
SELECT SUM( num ) planNums FROM plan WHERE type = '計劃' AND date = '2022-08-09'
此句求出2022年8月9號的計劃總數臨時表
SELECT SUM( num ) finishNums FROM plan WHERE type = '實出' AND date = '2022-08-09'
此句求出2022年8月9號的實際完成總數臨時表
IFNULL(ROUND(finishNums/planNums*100,2),0):此函數用於排除臨時表中計劃總數為null的情況,若ROUND(finishNums/planNums*100,2)為空,則返回值為0,否則返回值就是ROUND(finishNums/planNums*100,2)
ROUND(finishNums/planNums*100,2):此函數為四捨五入函數,將finishNums/planNums*100計算的結果保留兩位小數
注意:臨時表一定需要起別名,否則就會報錯
到此這篇關於sql語句中臨時表使用方法的文章就介紹到這了,更多相關sql臨時表使用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45