查询数据库内历史同期和总计脚本的方法
发表于:2024-09-24 作者:千家信息网编辑
千家信息网最后更新 2024年09月24日,查询数据库内历史同期和总计脚本的方法有哪些?为了让大家更加了解数据库,小编给大家总结了以下内容,一起往下看吧。一、需求1. 需求背景需求一:统计当前及历史同期业务量并在一个字段内展示;需求二:统计指定
千家信息网最后更新 2024年09月24日查询数据库内历史同期和总计脚本的方法
查询数据库内历史同期和总计脚本的方法有哪些?为了让大家更加了解数据库,小编给大家总结了以下内容,一起往下看吧。
一、需求
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=dbuserDBPASSWD=password#数据库环境变量,根据实际情况填写export ORACLE_SID=mydbexport ORACLE_BASE=/oracle/app/10.2.0export ORACLE_HOME=$ORACLE_BASE/db_1export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATHexport NLS_LANG="SIMPLIFIED Chinese_CHINA.ZHS16GBK"FRU_CALC() {echo "***************************每日水果销量统计***************************">> $REPORTsqlplus -s /nolog << EOS | sed '1d' | sed '/rows selected/d'conn $DBUSER/$DBPASSWDset linesize 999set pages 999col 日期 format a30col 苹果(历史同期) format a30col 梨子(历史同期) format a30col 香蕉(历史同期) format a30col 橙子(历史同期) format a30select 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) forder by f.day;quitEOS}FRU_CALC >>$REPORT 2>&1echo "*****************************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=dbuserDBPASSWD=password#数据库环境变量,根据实际情况填写export ORACLE_SID=mydbexport ORACLE_BASE=/oracle/app/10.2.0export ORACLE_HOME=$ORACLE_BASE/db_1export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATHexport NLS_LANG="SIMPLIFIED Chinese_CHINA.ZHS16GBK"FRU_CALC() {echo "***********历史水果销量总计:'$startdate'至'$enddate'***********">> $REPORTsqlplus -s /nolog << EOS | sed '1d' | sed '/rows selected/d'conn $DBUSER/$DBPASSWDset linesize 999set pages 999select 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;quitEOS}FRU_CALC >>$REPORT 2>&1echo "*****************************end*****************************">> $REPORT
统计20190101至 20191231水果销量汇总。
三、运行效果
1. 当前及历史同期查询
2. 某时间段内总计查询
本文所有脚本已上传github:scripts-for-select-now-history-and-sum-from-db
关于查询数据库内历史同期和总计脚本的方法就分享到这里了,当然并不止以上和大家分析的办法,不过小编可以保证其准确性是绝对没问题的。希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看到。
时间
统计
历史
脚本
数据
水果
销量
数据库
实际
情况
时间段
查询
效果
日志
需求
运行
业务
用户
方法
业务量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
eve冬眠者数据库
深圳资源通网络技术有限公司
美国网络安全特征
舟山嵌入式软件开发计划
300大作战服务器
软件开发技术现状
求生之路2联机服务器
刘峰天津大学网络安全
数据库处于恢复挂起状态
数据库多表关联操作
法院网络安全中心
数据库技术教材
求生之路2 服务器插件
通路预测数据库
网络技术兼职自学
绍兴代理服务器
惠普小型服务器
汕尾市城区网络安全宣传周
0基础自学网络安全书籍
宿舍管理数据库的设计
网络安全知识比赛英语
安苏服务器是几区
统计数据库比对工作
应用服务器多少钱一台
数据库括号术语
福建网络安全审计系统咨询贵不贵
tcp 服务器 监听
中学生网络安全教育作业
中国电信idc服务器
泗洪巨型网络技术厂家价格