请教关于distinct使用问题

sky_1989 2010-09-25 11:29:35
表 table
字段 id(唯一标识) name class date state
1 a 61 -- --
2 b 61 -- --
3 a 61 -- --
4 a 61 -- --

使用 select distinct name,class from table where class=61
的话只能显示name,class这2个字段
如果我想所有字段的sql语句要怎么写?
效果-----------------------------------------------------
字段 id(唯一标识) name class date state
1 a 61 -- --
2 b 61 -- --
...全文
127 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky_1989 2010-09-25
  • 打赏
  • 举报
回复
谢谢大家了!
结贴
心中的彩虹 2010-09-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 sky_1989 的回复:]
表 table
字段 id(唯一标识) name class date state
1 a 61 -- --
2 ……
[/Quote]



select * from tb a where not exists(select 1 from tb b where a.name=b.name and a.id>b.id)

select *
from (select a.*,row_number() over(partition by a.name order by id) rn
from tb a)
where rn=1







minitoy 2010-09-25
  • 打赏
  • 举报
回复
select * from (select a.*,row_number()over(partition by name ,class order by id asc) rn from table a) where rn=1
sky_1989 2010-09-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 minitoy 的回复:]
??
这也是sql语句啊
[/Quote]
我是要在java里面写sql的
你那种写法貌似行不通
能用一条sql语句搞定吗??
minitoy 2010-09-25
  • 打赏
  • 举报
回复
??
这也是sql语句啊
sky_1989 2010-09-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 minitoy 的回复:]
用分析函数
with t1 as (select a.*,row_number()over(partition by name ,class order by id asc) rn from table a)
select * from t1 where rn=1
[/Quote]
有没有只用sql语句就能搞定的???
sky_1989 2010-09-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhuomingwang 的回复:]
SQL code
--是这个意思?
select * from table where (name,class)
in (select distinct name,class from table where class=61)
[/Quote]
这个方法行不通
还是会显示重复的数据。。。。
minitoy 2010-09-25
  • 打赏
  • 举报
回复
用分析函数
with t1 as (select a.*,row_number()over(partition by name ,class order by id asc) rn from table a)
select * from t1 where rn=1
  • 打赏
  • 举报
回复
--是这个意思?
select * from table where (name,class)
in (select distinct name,class from table where class=61)
Java8新特性及实战视频教程完整版Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果。 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用Lambda 表达式可以使代码变的更加简洁紧凑。Java8实战视频-01让方法参数具备行为能力Java8实战视频-02Lambda表达式初探Java8实战视频-03Lambda语法精讲Java8实战视频-04Lambda使用深入解析Java8实战视频-05Lambda方法推导详细解析-上.wmvJava8实战视频-06Lambda方法推导详细解析-下Java8实战视频-07Stream入门及Stream在JVM中的线程表现Java8实战视频-08Stream知识点总结Stream源码阅读Java8实战视频-09如何创建Stream上集Java8实战视频-10如何创建Stream下集.wmvJava8实战视频-11Stream之filter,distinct,skip,limit,map,flatmap详细介绍Java8实战视频-12Stream之Find,Match,Reduce详细介绍Java8实战视频-13NumericStream的详细介绍以及和Stream之间的相互转换Java8实战视频-14Stream综合练习,熟练掌握API的用法Java8实战视频-15在Optional出现之前经常遇到的空指针异常.wmvJava8实战视频-16Optional的介绍以及API的详解Java8实战视频-17Optional之flatMap,综合练习,Optional源码剖析Java8实战视频-18初识Collector体会Collector的强大Java8实战视频-19Collector使用方法深入详细介绍-01Java8实战视频-20Collector使用方法深入详细介绍-02Java8实战视频-21Collector使用方法深入详细介绍-03.wmvJava8实战视频-22Collector使用方法深入详细介绍-04Java8实战视频-23Collector原理讲解,JDK自带Collector源码深度剖析Java8实战视频-24自定义Collector,结合Stream的使用详细介绍Java8实战视频-25Parallel Stream编程体验,充分利用多核机器加快计算速度Java8实战视频-26Fork Join框架实例深入讲解Java8实战视频-27Spliterator接口源码剖析以及自定义Spliterator实现一个Stream.wmvJava8实战视频-28Default方法的介绍和简单的例子Java8实战视频-29Default方法解决多重继承冲突的三大原则详细介绍Java8实战视频-30多线程Future设计模式原理详细介绍,并且实现一个Future程序Java8实战视频-31JDK自带Future,Callable,ExecutorService介绍Java8实战视频-32实现一个异步基于事件回调的Future程序.wmvJava8实战视频-33CompletableFuture用法入门介绍Java8实战视频-34CompletableFuture之supplyAsync详细介绍Java8实战视频-35CompletableFuture流水线工作,join多个异步任务详细讲解Java8实战视频-36CompletableFuture常用API的重点详解-上Java8实战视频-37CompletableFuture常用API的重点详解-下Java8实战视频-38JDK老DateAPI存在的问题,新的DateAPI之LocalDate用法及其介绍.wmvJava8实战视频-39New Date API之LocalTime,LocalDateTime,Instant,Duration,Period详细介绍Java8实战视频-40New Date API之format和parse介绍

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧