91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

查詢數據庫內歷史同期和總計腳本的方法

發布時間:2020-03-24 11:40:25 來源:億速云 閱讀:222 作者:小新 欄目:系統運維

查詢數據庫內歷史同期和總計腳本的方法有哪些?為了讓大家更加了解數據庫,小編給大家總結了以下內容,一起往下看吧。

一、需求

1. 需求背景

  • 需求一:統計當前及歷史同期業務量并在一個字段內展示;
  • 需求二:統計指定時間段內業務總量;

2. 最終效果展示

2.1 模擬表的表結構

本文以水果銷量模擬真實的業務量

查詢數據庫內歷史同期和總計腳本的方法

2.2 當前及歷史同期效果展示

統計近7天內和歷史同期各水果銷量

查詢數據庫內歷史同期和總計腳本的方法

2.3 某時間段內總計效果展示

統計2019年全年各水果銷量總計

查詢數據庫內歷史同期和總計腳本的方法

二.腳本

1. 當前及歷史同期腳本

#!/usr/bin/ksh

#運行示例:sh fru_calc_day.sh

#本腳本用于統計每日及同期歷史的水果銷量

#統計時間從前D1天開始,默認為7,即統計從7天前開始
D1=7
#統計時間到前D2天,默認為1,即截止到前一天
D2=1
#歷史數據,默認為12,即前12個月(去年)
M=12

#日志時間格式
filedate=`date +"%Y%m%d%H%M"`
#日志名
REPORT="/tmp/fru/report$filedate.log"

#數據庫用戶名/密碼,根據實際情況填寫
DBUSER=dbuser
DBPASSWD=password

#數據庫環境變量,根據實際情況填寫
export ORACLE_SID=mydb
export ORACLE_BASE=/oracle/app/10.2.0
export ORACLE_HOME=$ORACLE_BASE/db_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export NLS_LANG="SIMPLIFIED Chinese_CHINA.ZHS16GBK"

FRU_CALC() {
echo "***************************每日水果銷量統計***************************">> $REPORT
sqlplus -s /nolog << EOS | sed '1d' | sed '/rows selected/d'
conn $DBUSER/$DBPASSWD
set linesize 999
set pages 999
col 日期 format a30
col 蘋果(歷史同期) format a30
col 梨子(歷史同期) format a30
col 香蕉(歷史同期) format a30
col 橙子(歷史同期) format a30
select f.day as "日期",
       f.app as "蘋果(歷史同期)",
       f.pea as "梨子(歷史同期)",
       f.ban as "香蕉(歷史同期)",
       f.ora as "橙子(歷史同期)"
  from (select t.day,
               t.app || '(' || y.app || ')' as app,
               t.pea || '(' || y.pea || ')' as pea,
               t.ban || '(' || y.ban || ')' as ban,
               t.ora || '(' || y.ora || ')' as ora
          from (select a.day,
                       a.apple as app,
                       a.pear as pea,
                       a.banana as ban,
                       a.orange as ora
                  from fruits a
                 where a.day between TRUNC(sysdate - $D1, 'DD') and
                       TRUNC(sysdate - $D2, 'DD')) t,
               (select a.day,
                       a.apple as app,
                       a.pear as pea,
                       a.banana as ban,
                       a.orange as ora
                  from fruits a
                 where a.day between
                       TRUNC(ADD_MONTHS(sysdate, -$M) - $D1, 'DD') and
                       TRUNC(ADD_MONTHS(sysdate, -$M) - $D2, 'DD')) y
         where ADD_MONTHS(t.day, -$M) = y.day) f
order by f.day;
quit
EOS
}

FRU_CALC >>$REPORT 2>&1

echo "*****************************end*****************************">> $REPORT

本文腳本的執行shell為/usr/bin/ksh,可根據實際情況修改,運行命令echo $SHELL可查看當前用戶的shell類型。

2. 某時間段內總計腳本

#!/usr/bin/ksh

#運行示例:sh  fru_calc_sum.sh 20190101 20191231
#本腳本用于統計月度、年度或任意時間段內水果銷量匯總

#參數1,開始時間
startdate="$1"
#參數2,結束時間
enddate="$2"

#日志時間格式
filedate=`date +"%Y%m%d%H%M"`
#日志名
REPORT="/tmp/fru/report$filedate.log"

#數據庫用戶名/密碼,根據實際情況填寫
DBUSER=dbuser
DBPASSWD=password

#數據庫環境變量,根據實際情況填寫
export ORACLE_SID=mydb
export ORACLE_BASE=/oracle/app/10.2.0
export ORACLE_HOME=$ORACLE_BASE/db_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export NLS_LANG="SIMPLIFIED Chinese_CHINA.ZHS16GBK"

FRU_CALC() {
echo "***********歷史水果銷量總計:'$startdate'至'$enddate'***********">> $REPORT
sqlplus -s /nolog << EOS | sed '1d' | sed '/rows selected/d'
conn $DBUSER/$DBPASSWD
set linesize 999
set pages 999
select sum(f.app) as "蘋果",
       sum(f.pea) as "梨子",
       sum(f.ban) as "香蕉",
       sum(f.ora) as "橙子"
  from (select a.day,
               sum(a.apple) as app,
               sum(a.pear) as pea,
               sum(a.banana) as ban,
               sum(a.orange) as ora
          from fruits a
         where a.day between to_date('$startdate', 'yyyymmdd') and
               to_date('$enddate', 'yyyymmdd')
         group by a.day) f;
quit
EOS
}

FRU_CALC >>$REPORT 2>&1

echo "*****************************end*****************************">> $REPORT

統計20190101至 20191231水果銷量匯總。

三、運行效果

1. 當前及歷史同期查詢

查詢數據庫內歷史同期和總計腳本的方法

2. 某時間段內總計查詢

查詢數據庫內歷史同期和總計腳本的方法

本文所有腳本已上傳github:scripts-for-select-now-history-and-sum-from-db

關于查詢數據庫內歷史同期和總計腳本的方法就分享到這里了,當然并不止以上和大家分析的辦法,不過小編可以保證其準確性是絕對沒問題的。希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

久治县| 延庆县| 托克逊县| 文昌市| 枣强县| 建宁县| 阿图什市| 沙河市| 阿尔山市| 镇沅| 康马县| 文山县| 越西县| 定西市| 阳江市| 涡阳县| 武邑县| 北碚区| 岢岚县| 犍为县| 淳安县| 洛川县| 浙江省| 岐山县| 高雄县| 抚远县| 同江市| 普陀区| 武冈市| 永顺县| 绥江县| 蒲江县| 金堂县| 内黄县| 罗山县| 厦门市| 苍南县| 馆陶县| 探索| 会理县| 江山市|