oracle 求每列的最大值

问题描述

test 表中有 num1、num2、num3 3个字段第一列、第二列、第三列1112-1231-1-121132求每列 -1 之前的最大值结果是:3、1、2 问题补充:可能是格式的问题,没有说清楚,我把列数据打成横排看看。第一列: 1,2,3,-1,1第二列: 1,-1,1,2,3第三列: 1,2,-1,1,2 求每列 -1 之前的最大值第一列最大值为:3第二列最大值为:1第三列最大值为:3

解决方案

ok了. 查询每列值为 -1的 前一排最近值, 如果该列中没有-1.则返回0.select t1.c1, t2.c2, t3.c3 from (select nvl (min(c1),0) c1 from test where rowid = (select max(rowid) from test where rowid < (select rowid from test where c1 = -1)) order by c1) t1, (select nvl (min(c2),0) c2 from test where rowid = (select max(rowid) from test where rowid < (select rowid from test where c2 = -1)) order by c2) t2, (select nvl (min(c3),0) c3 from test where rowid = (select max(rowid) from test where rowid < (select rowid from test where c3 = -1)) order by c3) t3
解决方案二:
可以了. 如果没有-1 就给0 是吧. 这个我等会写. 我先开会了....select t1.c1, t2.c2, t3.c3 from (select c1 from test where rowid = (select max(rowid) from test where rowid < (select rowid from test where c1 = -1))) t1, (select c2 from test where rowid = (select max(rowid) from test where rowid < (select rowid from test where c2 = -1))) t2, (select c3 from test where rowid = (select max(rowid) from test where rowid < (select rowid from test where c3 = -1))) t3
解决方案三:
select t1.c1 ,t2.c2, t3.c3 from (select min(c1) c1 from (select c1 from test where c1 > -1 order by c1) ) t1, (select min(c2) c2 from (select c2 from test where c2 > -1 order by c2)) t2 , (select min(c3) c3 from (select c3 from test where c3 > -1 order by c3)) t3
解决方案四:
是oracle,我给你个思路,先确定每列-1所在行的ROWNUM,然后查小于这个ROWNUM,并且每列最大的值,
解决方案五:
我感觉没有个自动增长的id列不好弄啊,要是oracle我感觉还好办,
解决方案六:
那就是下面的.SELECT MAX(c1),MAX(c2),MAX(c3)-1 FROM tablename SELECT MAX(c1),MAX(c2),MAX(c3)-2 FROM tablename
解决方案七:
select (greatest(c1,c2,c3) +1 )as maxvlaue from tablename 对不起. 没看到您有要减1的要求
解决方案八:
select (greatest(c1,c2,c3) -1 )as maxvlaue from tablename 对不起. 没看到您有要减1的要求
解决方案九:
您好。 可以使用下面的方案实现select greatest(c1,c2,c3) as maxvlaue from tablename希望您 健康 愉快!
解决方案十:
SELECT MAX(第一列),MAX(第二列),MAX(第三列) FROM 表不知道对不对.

时间: 2024-09-20 08:56:59

oracle 求每列的最大值的相关文章

oracle 求一列的 和(加法)

问题描述 就这一列 解决方案 直接用sum函数即可,这是sum函数的最简单用法,代码如下:select sum(ndpnumber) from table_name where [cases]其中table_name是你的表名,where [cases]是过滤条件,如果不需要,可以只使用select sum(ndpnumber) from table_name解决方案二:sum聚合函数解决方案三:你是不是要求一列的和啊? 直接就用sum函数不行么?

oracle自增列创建方法收藏

  oracle自增列创建方法收藏 Oracle没有自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现. 先建一个测试表了: create table userlogin ( id number(6) not null, name varchar2(30) not null primary key ) tablespace users / 第一步:创建SEQUENCE create sequence userlogin_seq increment by 1 s

ora 03114-oracle登录时出现“ORA-03114:未连接到ORACLE”求各位大神相助!!

问题描述 oracle登录时出现"ORA-03114:未连接到ORACLE"求各位大神相助!! oracle登录时出现"ORA-03114:未连接到ORACLE"求各位大神相助!!重装前正常登录,重装C盘后不能登录,重新安装了BDE7,oracel10.0.1并有oracle10.2.4补丁 解决方案 重装系统了?Oracle也得重装. 解决方案二: oracle服务开了吗

vc access 求某字段的最大值最小值

问题描述 vc access 求某字段的最大值最小值 我想通过vc在access中找出某个字段的最大值 最小值 并显示在编辑框内,不知道谁有没有具体的例子供参考 ,万分感谢,我初学vc和access,太简略的语言看不懂啊,求那种具体的语句 解决方案 先排序,然后分别取第一条记录和最后一条记录,就是最小值最大值. 关于如何访问数据库,以及如何显示在编辑框,这些不是几句话能说清的,要么你自己看书,要么问问同事. 实在懒得学习,去威客网站发个任务,几百块钱就有大批码农为你效力. 解决方案二: sele

oracle 求大神解决谢谢!!!! select报错怎么改 急急急

问题描述 oracle 求大神解决谢谢!!!! select报错怎么改 急急急 select mv.*,(select r.currency,trunc(r.rcv_date,'MM') as rcv_date,sum(decode(r.transaction_type, 'RECEIVE', 1, -1) * r.QUANTITY) from epms_erp_rcvqty_info r where r.LINE_LOCATION_ID = '33733' and r.rcv_date >=

[oracle] 求9月份连续两天打电话的记录,求大神帮忙 纠结一天了

问题描述 [oracle] 求9月份连续两天打电话的记录,求大神帮忙 纠结一天了 问题是这样的,项目经理叫我求出今年9月份的连续两天有打电话的记录 最终版效果是这样的 id max(accept_time) min(accept_time) count(*) group_name 5962 2014/9/1 3:45:57 2014/9/1 3:45:57 1 网管中心.网络监控中心 balk_phone` 10011 就是这个部门group_name 连续在9月份连续两天有电话有记录的数量 我

求VB大神帮助,想求一个公式的最大值,最小值,及对应的角度

问题描述 求VB大神帮助,想求一个公式的最大值,最小值,及对应的角度 θ=输入值 S= 输入值 x=0 to 360 e=0.2S h=1.2S a=0.7S X1=a*sin(θ+x) y1=-a*cos(θ+x) x2=e y2=h+S b= Math.Sqrt((x1 - x2) ^ 2 + (y1 - y2) ^ 2) 求b的最大值bmax及对应的角度(x值),最小值bmin和最小值的角度(x值) θ 和S 文本输入框让用户自定义 我用的是VB.NET 想要lable输出这样的结果, 最

c#-oracle行转列问题。纯SQL

问题描述 oracle行转列问题.纯SQL oracle中有一张读者表(TableReader),里面有一列保存读者类型(ColReaderTypeIds),存的值是类似(1,2,3)这种,分别对应读者类型表(TableReaderType)中的类型(ReaderTypeId),1,类型1:2,类型2:3,类型3.是三行数据!读者可以有多个类型.TableReaderType中的数据不确定,所以不能用case when.我要在查询TableReader表中的ColReaderTypeIds的时候

Oracle之虚拟列及虚拟列索引

Oracle之虚拟列及虚拟列索引 1. 为什么要使用虚拟列        (1)可以为虚拟列创建索引(oracle为其创建function index)        (2)可以搜集虚拟列的统计信息statistics,为CBO提供一定的采样分析.       (3)可以在where 后面使用虚拟列作为选择条件       (4)只在一处定义,不存储多余数据,查询是动态生成. 2. 语法 [sql] view plain copy  HR@bear> create table inv(   2