表 table字段a b c1 x 2
1 x 32 y 22 y 3如何返回以 a 分组后 c 最小的值结果是
a b c1 x 22 y 2
1 x 32 y 22 y 3如何返回以 a 分组后 c 最小的值结果是
a b c1 x 22 y 2
解决方案 »
- 急救 Oracle UCM 安装
- 如何修改OEM-管理-初始化参数中某些项的默认值?
- 如何查看oracle安装时默认的端口号
- 想学习oracle数据库编程
- ORA-01041 internal error. HOSTDEF extension does not exist是怎么回事?
- oracle建立DBLINK去访问sql2000数据库 更新sql中表和字段问题
- 请教一个查询
- SQL2000的左外联怎么转为ORACLE817的左外联
- sys密码忘了怎么办?
- 数据导入时关于字符转换问题面出错导不了,答者有分,能者多劳!!!!!
- 谁有CNOUG论坛的邀请码,给我一个啊,不胜感激!
- 分组后将数据用union连接起来,然后按字段相同求和的问题
from table
group by a,b
a b c 1 x 2
1 x 3 2 y 2 2 y 3 SQL:select a,b,c from
(
select a,b,c,row_number() over(partition by a,b order by a) rn from tt
)
where rn=1RESULT:
a b c 1 x 2 2 y 2
insert into test_table values ('1','x','2');
insert into test_table values ('1','x','3');
insert into test_table values ('2','y','2');
insert into test_table values ('2','y','3');查询语句一:
select a,b,c from ( select a,b,c,row_number() over(partition by a,b order by a) rn from test_table) where rn=1;查询语句二:
select a,b,min(c) c from test_table group by a,b;结果都一样:
A B C
-- -- --
1 x 2
2 y 2
或
select a,min(b) b,min(c) c from test_table group by a;
SQL> SELECT *
2 FROM TABLE T1
3 WHERE EXISTS (
4 SELECT 1
5 FROM TABLE T2
6 WHERE T1.A = T2.A
7 AND T1.C < T2.C
8 ); A B C
---------- - ----------
1 X 2
2 Y 2SQL>
2 group by a,b;A B MIN(C)
-- -- ------
1 x 2
2 y 2SQL>
SQL> SELECT *
2 FROM TABLE T1
3 WHERE EXISTS (
4 SELECT 1
5 FROM TABLE
6 WHERE T1.A = A
7 AND T1.C < C
8 );
这样就行了