最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

sql語句中臨時表使用實例詳解

 更新時間:2023年02月16日 11:27:01   作者:機(jī)智大袁  
當(dāng)需要的結(jié)果需要經(jīng)過多次處理后才能最終得到我們需要的結(jié)果時,就可以使用臨時表,這里臨時表就起到了一個中間處理的作用,實現(xiàn)了分步處理,簡化了問題,這篇文章主要介紹了sql語句中臨時表使用方法,需要的朋友可以參考下

一、臨時表實現(xiàn)分步處理

1.概述

當(dāng)需要的結(jié)果需要經(jīng)過多次處理后才能最終得到我們需要的結(jié)果時,就可以使用臨時表,這里臨時表就起到了一個中間處理的作用,實現(xiàn)了分步處理,簡化了問題。

2.實例

2.1表格結(jié)構(gòu)

pln_order_pool_detail(表名)

2.2需求

需要得到訂單平均交付周期、最大交付周期、最小交付周期,為了實現(xiàn)這一需求,首先我們要求出每個訂單的交付周期,其次我們需要將這些訂單的交付周期求其平均值。

2.3sql語句

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

2.4sql語句解析

其中 SELECT DATEDIFF(reality_deliver_time,create_time) AS leadTime FROM  pln_order_pool  WHERE order_state = 'finish' 是求出每個訂單的交付周期作為臨時表,每個訂單的交付周期即狀態(tài)(order_state)為'finish'的訂單的實際交付時間(reality_deliver_time)減去該訂單的創(chuàng)建時間(create_time)

DATEDIFF(reality_deliver_time,create_time):該函數(shù)表示實際交付日期(reality_deliver_time)與創(chuàng)建日期(create_time)的間隔,且結(jié)果是以天數(shù)進(jìn)行返回

 AVG( leadTime ):將臨時表中的交付周期通過AVG函數(shù)求出平均交付周期

MAX( leadTime):將臨時表中的交付周期通過MAX函數(shù)求出最大交付周期

MIN( leadTime):將臨時表中的交付周期通過MIN函數(shù)求出最小交付周期

二、臨時表實現(xiàn)分層處理

1、概述

在實際開發(fā)中經(jīng)常會碰到一個字段下存儲的結(jié)果不同,而我又需要對這兩個結(jié)果進(jìn)行處理得到最終的結(jié)果,此時如果沒有臨時表我們就可能需要寫兩個sql語句分別得到結(jié)果,然后在后端進(jìn)行運(yùn)算得到最終需要的結(jié)果。

2、實例

也許上面的概述表述并不清楚,現(xiàn)在用一個實例來說明。

像這樣的一個表結(jié)構(gòu),我想要計算2022年8月9號這一天的計劃完成率,那就需要計算該日期的計劃數(shù)和計劃完成數(shù)的比值,也就是計算該日期的實出對應(yīng)的數(shù)量與該日期的計劃對應(yīng)的數(shù)量的比值,但是上面的表結(jié)構(gòu)中計劃與實出都在type一個字段下,我又該如何將where條件設(shè)置為type等于“計劃”求出計劃數(shù),同時又將where條件設(shè)置為type等于“實出”求出實際完成的數(shù)量呢?

2.1表結(jié)構(gòu)

plan(表名)

2.2需求

求出2022年8月9號一天的計劃完成率

2.3sql語句

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

2.4sql語句解析

針對上述的問題,我們使用臨時表就可以完美的解決,根據(jù)條件的不同我們建立兩個臨時表,分別記錄當(dāng)天的計劃總數(shù)和當(dāng)天的實際完成的數(shù)量,實現(xiàn)分層處理,最后我們再將臨時表中的數(shù)據(jù)進(jìn)行運(yùn)算就可以得到當(dāng)天的計劃完成率。

SELECT SUM( num ) planNums FROM plan WHERE type = '計劃' AND date = '2022-08-09'

 此句求出2022年8月9號的計劃總數(shù)臨時表

SELECT SUM( num ) finishNums FROM plan WHERE type = '實出' AND date = '2022-08-09'

此句求出2022年8月9號的實際完成總數(shù)臨時表

IFNULL(ROUND(finishNums/planNums*100,2),0):此函數(shù)用于排除臨時表中計劃總數(shù)為null的情況,若ROUND(finishNums/planNums*100,2)為空,則返回值為0,否則返回值就是ROUND(finishNums/planNums*100,2)

ROUND(finishNums/planNums*100,2):此函數(shù)為四舍五入函數(shù),將finishNums/planNums*100計算的結(jié)果保留兩位小數(shù)

注意:臨時表一定需要起別名,否則就會報錯

到此這篇關(guān)于sql語句中臨時表使用方法的文章就介紹到這了,更多相關(guān)sql臨時表使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SQL?Server序列SEQUENCE用法介紹

    SQL?Server序列SEQUENCE用法介紹

    這篇文章介紹了SQL?Server中序列SEQUENCE的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Java 實現(xiàn)連接sql server 2000

    Java 實現(xiàn)連接sql server 2000

    JDBC技術(shù)事實上是一種能通過JAVA語言訪問任何結(jié)構(gòu)化數(shù)據(jù)庫的應(yīng)用程序接口(API)(Sun這樣說的,我也不知道是不是真的),而且現(xiàn)在的JDBC 3.0據(jù)Sun說也能訪問Execel等電子表格程序!
    2009-06-06
  • SQLServer 2008 CDC功能實現(xiàn)數(shù)據(jù)變更捕獲腳本

    SQLServer 2008 CDC功能實現(xiàn)數(shù)據(jù)變更捕獲腳本

    這篇文章主要介紹了使用SQLServer 2008的CDC功能實現(xiàn)數(shù)據(jù)變更捕獲的腳本,大家參考使用
    2013-11-11
  • 安裝完成后如何找回SQL Server實例安裝時的序列號

    安裝完成后如何找回SQL Server實例安裝時的序列號

    當(dāng)我們需要再次安裝sqlserver時,如何找回sqlserver實例安裝時的序列號呢?下面,跟著腳本之家小編一起學(xué)習(xí)安裝完成后如何找回SQL Server實例安裝時的序列號,需要的朋友可以參考下
    2015-09-09
  • SQL?Server?異地數(shù)據(jù)庫每日同步作業(yè)操作圖文詳解

    SQL?Server?異地數(shù)據(jù)庫每日同步作業(yè)操作圖文詳解

    最近因為經(jīng)常有攻擊,所以考慮到網(wǎng)站的安全問題,所以多弄了幾臺服務(wù)器并實現(xiàn)數(shù)據(jù)庫與文件每天同步,這里主要介紹了sqlserver數(shù)據(jù)的每天同步問題
    2024-04-04
  • SQL SERVER函數(shù)之深入表值函數(shù)的處理分析

    SQL SERVER函數(shù)之深入表值函數(shù)的處理分析

    本篇文章是對表值函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • ASP數(shù)據(jù)庫編程SQL常用技巧

    ASP數(shù)據(jù)庫編程SQL常用技巧

    ASP數(shù)據(jù)庫編程SQL常用技巧...
    2006-09-09
  • 一文掌握SQL的 joins 語法

    一文掌握SQL的 joins 語法

    SQL JOIN是結(jié)合兩個或多個表的數(shù)據(jù)的一種方式,INNER JOIN返回兩表匹配的記錄;LEFT JOIN返回左表所有記錄及右表匹配記錄;RIGHT JOIN返回右表所有記錄及左表匹配記錄;FULL JOIN返回兩表中所有記錄,無論是否匹配,這些JOIN類型有助于靈活查詢和分析關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)
    2024-09-09
  • SQL Server數(shù)據(jù)庫中偽列及偽列的含義詳解

    SQL Server數(shù)據(jù)庫中偽列及偽列的含義詳解

    這篇文章主要給大家介紹了關(guān)于SQL Server數(shù)據(jù)庫中偽列及偽列含義的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • SQLServer日期函數(shù)總結(jié)案例詳解

    SQLServer日期函數(shù)總結(jié)案例詳解

    這篇文章主要介紹了SQLServer日期函數(shù)總結(jié)案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09

最新評論

天峨县| 曲松县| 汶川县| 桐柏县| 阳朔县| 延庆县| 大冶市| 赤城县| 大同县| 竹溪县| 平阴县| 凭祥市| 嘉黎县| 四平市| 宁国市| 宜丰县| 内黄县| 鹿邑县| 裕民县| 塔河县| 阿图什市| 北安市| 依安县| 伊春市| 阳高县| 荥经县| 新安县| 洛宁县| 神池县| 竹北市| 和静县| 宁化县| 盐池县| 许昌市| 瓮安县| 左云县| 枞阳县| 彰化县| 泽州县| 通州市| 云浮市|