select col_1,col_2,col_3,col_4
from tb_name
group by col_1
from tb_name
group by col_1
解决方案 »
- exp导出表怎么去掉以数字结尾的表
- 百度都搜不到的诡异情况…………
- 求求求!! 一个关于数据库查询的问题
- ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID
- 热心人帮我查一下:Error: PL/SQL: ORA-00600: 内部错误代码,参数: [qcscpqbc1], [1], [0], [], [], [], [], []
- ORA-0146
- oracle 中字段类型 INT 和 Integer 有什么区别
- 如何卸载oracle数据库?
- Database Link与Socket那种方式更好?
- 急问个问题
- sqlserver的@@IDENTITY在oracle中怎样实现?
- 英国大学毕业设计课题,求大家帮忙.
select a.* from tbname a,
(select max(rowid) from tbname b group by colA) t
where a.rowid=t.rowid;
from table group by col1
from table_name a,
(select max(rowid) from table_name b group by col1) b
where a.rowid = b.rowid;
所以只要找到rowid就可以了.
所以:
select * from table_name where rowid in
(select max(rowid) from table_name group by col1)
from tbname a
where a.rowid = (select max(rowid)
from tbname b
where a.col1=b.col1
)
where rowid in (select max(rowid) from table group by cola,colb,colc,cold);
try:select * from table
where rowid in (select max(rowid) from table group by cola);
select col1,max(col2),max(col3)............ from talbe_name
group by col1不是很好吗?
当然不一定是max,只要是聚合函数就可以了。
AAAA 1O3 32.1 A
AAAB 101 33.2 A
AAAB 102 33.3 B
那你的语句将会得到什么结果呢
from (
select t.* ,row_number() over (partition by t.a order by t.b ) ty from table_name t) tt
where tt.ty<2
select col_1,col_2,col_3,col_4
from tb_name
group by col_1
回复人: bzszp(SongZip) ( ) 信誉:149
try:
select a.* from tbname a,
(select max(rowid) from tbname b group by colA) t
where a.rowid=t.rowid;
_____________________________________________________________________________________
上边两种方法都是错的, 第一个 不符合group by的用法 第二个 取不出rowid 。
select col1,max(col2),max(col3)
from table group by col1
回复人: GerryYang(轻尘) ( ) 信誉:100
每一条记录都会有一个rowid,独一无二的.
所以只要找到rowid就可以了.
所以:
select * from table_name where rowid in
(select max(rowid) from table_name group by col1)
————————————————————————————————————————————
这两种方法 小弟已测试 可以达到目的!
select col1,col2,col3,col4
from (
select col1,col2,col3,col4,
row_number() over (partition by col1 order by rowid ) rn
from table
)
where rn = 1;
select col1,max(col2),max(col3)
from table group by col1
回复人: GerryYang(轻尘) ( ) 信誉:100
每一条记录都会有一个rowid,独一无二的.
所以只要找到rowid就可以了.
所以:
select * from table_name where rowid in
(select max(rowid) from table_name group by col1)
————————————————————————————————————————————
这两种方法 小弟已测试 可以达到目的!----------
第一种方法是不可以的,因为你取到的并不一定是原表中的一条记录.
使用一个row_number函数就好了.
select col1,col2,col3,col4
from (
select col1,col2,col3,col4,
row_number() over (partition by col1 order by rowid ) rn
from table
)
where rn = 1;
_____________________________________________________________________这个也是可以的!!
to armyyd(不会游泳的猫)如果是下面这样的情况呢AAAA 1OO 33.1 A
AAAA 1O3 32.1 A
AAAB 101 33.2 A
AAAB 102 33.3 B
那你的语句将会得到什么结果呢
是欠考虑了。
用通用的那种去除相同记录的办法就可以了。