表的内容如下:表名:tbl1clm1 clm2 clm3
001 小王 高中
001 小刘 中专
002 小李 高中
003 小高 大专
003 小赵 大学
003 小甲 高中想检索出这样的结果,就是用clm1来group一下,
把clm1值相同的纪录的第一条都检索出来001 小王 高中
002 小李 高中
003 小高 大专请高手指教!
001 小王 高中
001 小刘 中专
002 小李 高中
003 小高 大专
003 小赵 大学
003 小甲 高中想检索出这样的结果,就是用clm1来group一下,
把clm1值相同的纪录的第一条都检索出来001 小王 高中
002 小李 高中
003 小高 大专请高手指教!
解决方案 »
- oracle删除表空间
- 挑战性问题!期待高手或oracle技术支持!
- java存储过程在linux服务器上创建目录
- plsql中输入的varchar2参数的最大长度
- 超简单问题:set pause的用法
- jvm 进程退出,OCI连接方式,oracle 10.1,在线等
- 如何把一个表的一行数据 拷贝给另一个表啊 帮帮忙啊
- 怎么把自己创建的表归属于我创建的用户呢?
- 谁能给我解释一下这个Sql语句:Select Count(*) AllNum From tXX Where 1 = 1
- ORA-00020的新问题
- 中文分词服务器(C语言开发+词库+源代码),最大特色可以让javascript来调用!当然也可以让其他任何语言来调用
- 求一条语句!
SELECT CLM1,CLM2,CLM3
FROM
(SELECT ROW_NUMBER() OVER(PARTITION BY CLM1 ORDER BY CLM1) RN,TBL1.* FROM TBL1)
WHERE RN=1
已写入 file afiedt.buf 1* create table tbl1(clm1 varchar2(10),clm2 varchar2(10),clm3 varchar2(10))
SQL> /表已创建。SQL> insert into tbl1
2 select '001','小王','高中' from dual
3 union
4 select '001','小刘','中专' from dual
5 union
6 select '002','小李','高中' from dual;已创建3行。SQL> commit;提交完成。SQL> ed
已写入 file afiedt.buf 1 select clm1,clm2,clm3
2 from(
3 select clm1,clm2,clm3,rank() over(partition by clm1 order by clm3 desc) rn from tbl1)
4* where rn=1
SQL> /CLM1 CLM2 CLM3
---------- ---------- ----------
001 小刘 中专
002 小李 高中
WITH T(CLM1,CLM2,CLM3,CLM4) AS
(
SELECT CLM1,CLM2,CLM3,row_number() over(partition BY clm1) AS CLM4 FROM TBL1
)
SELECT CLM1,CLM2,CLM3 FROM T WHERE CLM4=1;