MySQL使用用@jznum声明一个变量
来源:互联网 发布:linux socket bind 编辑:程序博客网 时间:2024/06/05 00:16
今天写了一个超长的(MySql)SQL语句,为了统计医生的综合名次:
统计名次逻辑:使用到了@jznum声明一个变量
医生有三个名次指标:接诊人数、金额、复诊人数
首先:要得出这三个指标的名次(得出三个排名:接诊人数、金额、复诊人数)
然后:把每个医生的三个名次相加(接诊人数名次+金额名次+复诊人数名次),作为每个医生的“综合名次”。
最后:根据每个医生的“综合名次”,排序,得出前十名。
给出SQL:
select je.ysmc,jerank,fzrank,jzrank,@sum:=jerank+fzrank+jzrank as rank from (select @jenum:=@jenum+1 as jerank, t.ysmc from (select ysmc,SUM(je) as sumje from TB_DPSTAT_YSJXJXZH where datediff(curdate(),tjrq)<365 and datediff(curdate(),tjrq)>0 GROUP BY YSgh ORDER BY sumje Desc) t,(select @jenum:=0) B order by t.sumje desc) je,(SELECT@fznum :=@fznum + 1 AS fzrank,t.ysmc,t.sumfzrsFROM(SELECTysmc,SUM(fzrs) AS sumfzrsFROMTB_DPSTAT_YSJXJXZHWHEREdatediff(curdate(), tjrq) < 365AND datediff(curdate(), tjrq) > 0GROUP BYYSghORDER BYsumfzrs DESC) t,(SELECT @fznum := 0) BORDER BYt.sumfzrs DESC) fz, (SELECT@jznum :=@jznum + 1 AS jzrank,t.ysmc,t.sumrjjzrsFROM(SELECTysmc,SUM(RJJZRS) AS sumrjjzrsFROMTB_DPSTAT_YSJXJXZHWHEREdatediff(curdate(), tjrq) < 365AND datediff(curdate(), tjrq) > 0GROUP BYYSghORDER BYsumrjjzrs DESC) t,(SELECT @jznum := 0) BORDER BYt.sumrjjzrs DESC) jzWHEREje.ysmc = fz.ysmcAND fz.ysmc = jz.ysmcORDER BYrankLIMIT 10
小结:
知识点 1 :
用@jznum声明一个变量,来根据已经排好序的数据,添加一列新的序号列。
select @jznum:=@jznum+1 as rank, st.xm from
( select * from StudentInfo order by fenshu desc) st, (select @jznum:=0) B order by rank
知识点 2:
在使用sql函数时,尽量不要把函数与表中的字段关联起来,这样的话,这个字段所带的索引就会失效。
例如:上面的SQL语句中所涉及的datediff函数,
用:
CURDATE()>tjrq and DATE_ADD(CURDATE(),INTERVAL -365 DAY)<tjrq
来代替。这样函数和字段脱离,就不会影响字段的索引功能。
阅读全文
0 0
- MySQL使用用@jznum声明一个变量
- 用JAVA接口声明一个变量是什么意思?
- 声明一个变量
- 变量声明与使用
- 声明一个变量为null
- MySql声明变量和赋值
- Mysql声明变量以及赋值
- Mysql 声明变量并赋值
- 函数/变量的声明、使用
- java变量声明及使用
- 用extern声明变量
- VBA--声明变量类型的一个陷阱!
- 静态的声明一个指针变量
- 请教一个声明变量的问题
- 接口声明变量的一个实际例子
- mysql 编程 变量的声明赋值定义
- 使用new为结构分配内存而不是声明一个结构变量
- C++编码器军规(003):避免对一个声明为const的变量使用const_cast
- Linux第二章习题
- highcharts 处理时间不连续的图表封装函数
- M3的MCU的启动过程
- 【Ionic3】关闭新增页面,跳转到列表后刷新(回显)
- C语言经典面试题 与 C语言面试宝典
- MySQL使用用@jznum声明一个变量
- 省选模拟(12.10) T2 maze
- git命令
- Maven环境变量配置教程(史上最详细版)
- 比特币或区块链的创业思路【炒币篇】
- TunesKit Audible AA AAX Converter(有声读物转换工具)官方注册版V1.2.10.21下载 | TunesKit Audible Converter
- H264 各种profile
- 转载:SQL入门教程
- win7下实现gitlab和github ssh共存