#!/bin/bash
cat `ls | grep SDU` | awk -F" " '{print $1}' |sort | uniq -c | awk -F" " '{print $2}' > name.txt
# 由于三张表的名字是乱的,先赛选出所有名字存入name.txt 文件
# sort 分组,uniq -c 分组计算个数
cat `ls | grep SDU` | awk -F" " '{print $1 " " $2}' > 1.txt
# 将所有数据按照格式存入新文件
a=(
`cat name.txt`
)
# 定义数组变量 a 为: 查看文件中的所有名字
echo ${a[*]} # 打印数组 a 所有元素:所有名字
for i in ${a[*]} # 循环变量 i 为数组a中的所有元素
do # 开始循环
ja=`mysql -ucs -pcs -e " use cs ; select * from SDU1 where SDU1.name='$i' "`
# 定义变量ja 为: 登陆数据库 cs 查询 SDU1 表中 name名字的数据
ja=`echo "$ja" | grep $i | awk -F" " '{print $2}'| sed 's/ //g'` ; echo $ja
# 重新给 ja 赋值:打印上一次ja变量的值,grep 过滤名字行,awk 字段处理 -F 指定分隔符为空格,print 第二列,sed 替换空格为空,打印变量a
if [ ${#ja} -lt 1 ] # 判断变量 ja 的长度小于1 就重新赋值变量值为0
then ja=0
fi
jb=`mysql -ucs -pcs -e " use cs ; select * from SDU2 where SDU2.name='$i' "`
jb=`echo "$jb" | grep $i | awk -F" " '{print $2}' | sed 's/ //g'`
if [ ${#jb} -lt 1 ]
then jb=0
fi
jc=`mysql -ucs -pcs -e " use cs ; select * from SDU3 where SDU3.name='$i' "`
jc=`echo "$jc" | grep $i | awk -F" " '{print $2}' | sed 's/ //g'`
if [ ${#jc} -lt 1 ]
then jc=0
fi
echo "$i $[$ja+$jb+$jc] $ja.$jb.$jc " >> jisuan.txt
echo "----------------------------------------------------------------------------------------------------"
done
SELECT name,zong,guocheng FROM jisuan ORDER BY CONVERT(zong,SIGNED) DESC limit 50
# 数据库查询统计表后:进行指定zong列排序;
# convert 将zong 列转换为int类型,desc 倒叙排列
# limit 50 显示前50行
#################### 其他数据库参考资料
#数据库排序前50名
select top 1000 * from Chay_Temp A
where A.field03 between '2019-05-27' and '2019-05-28'
order by convert(int,field02) desc
--top1000* 显示这个表的所有内容后筛选前1000行,A是表别名,方便选择字段
--between and 和(and)什么之间(between [bɪˈtwiːn] 之间)
--order by [ˈɔːdə(r)] 以......排序
--convert(int,field02)将字符串转为( convert [kənˈvɜːt ] 转换)int类型进行倒序(大到小)排序
--desc 倒序;asc 正序se
--order by A.field03 desc 将时间列进行倒序排列
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。