拎干的毛巾 2016-10-29 05:39 采纳率: 25%
浏览 869

怎么在Oracle中实现如下SQL的查询?

有一张表TEST,表字段如下:
time a b c d
2016-08-04 5481.41 142.77 697.1 14447.7
2016-11-16 461.7 4142.17 1647.1 446.69
2016-08-04 48.41 8142.63 697.1 5447.7
2016-08-04 5481.41 342.57 147.1 18747.7

a,b,c,d按照数值有等级区分,
对于a和b字段:
0-500 1

500-1000 2
1000-3000 3
>3000 4

对于c字段:
0-255 1

255-900 2
900-3000 3
>3000 4

对于d字段:
0-500 1

500-1000 2
>1000 3

按时间范围查询,想实现的查询结果如下:
rankAB rankC rankD avg_a avg_b avg_c max_d rate
1 3 4 154.56 5843.25 586.14 251.11 0.25
2 1 2 154.56 5843.25 586.14 251.11 0.14
1 1 3 154.56 5843.25 586.14 251.11 0.09
……

其中rankAB为 取TEST表中每行a和b最大值计算等级;rankC和rankD分别为c和d的等级,按照三种等级分组,avg_*分别为a,b,c列的平均值,max_d为改组D列最大值,rate位该组数据的比例。

本人对SQL不是很精通,希望能给出oracle的查询sql,或者给出一些oracle中的方法指导,谢谢了。

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-10-29 16:16
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献