例如有这样一张表
create table testa (
c_a varchar2(10),
c_b number
)插入如下数据a 1
b 1
c 2
a 2
d 3我想得到这样的查询结果
a 2
b 1
c 2
d 3就是想查询每一个c_a列元素对应c_b列最大的结果集,能否用一条sql查询到呢?求大神指点。
create table testa (
c_a varchar2(10),
c_b number
)插入如下数据a 1
b 1
c 2
a 2
d 3我想得到这样的查询结果
a 2
b 1
c 2
d 3就是想查询每一个c_a列元素对应c_b列最大的结果集,能否用一条sql查询到呢?求大神指点。
解决方案 »
- 一个推荐表里面 怎么查询第一个推荐人下面所有的成员 包括成员所推荐的人
- oracle10如何结束sql运行的语句?
- clob转long row怎么处理?
- 高手进来帮下忙,特殊过滤语句不知道怎么写,谢谢了~!
- ORACLE 8 中文乱码问题 急急急!
- grant read,write on diretory back to renlink;
- 翻译SQLSERVER查询语句?
- 如何让一个序列回到初值,即(start with)值
- 【求助】8.0.5 用Oracle Database Assistant建立了数据库 下一步该做什么?
- 急!!!数据块损坏怎么办?
- 求助一个小测试软件在没装ORACLE的机器上连接不上啊。
- 求助,select多个字段赋值给多个变量,怎么写sql语句
select c_a,max(c_b) from t1 group by x;
所以,我觉得还是用oracle的分析函数和开窗函数会比较好。
如下:
select c_a,c_b from
(
select c_a,c_b,rank()over(partition by c_a order by c_b desc) mm from testa
)
where mm=1
select distinct c_a,c_b from
(
select c_a,max(c_b) as c_b from testa group by c_a
)