http://blog.csdn.net/yao__shun__yu/article/details/7960323

针对distinct不能一次查询用户想要的结果,采用group by解决

查询表(大批量的车牌号重复、要把重复的车牌号去掉,同时显示完整信息id、车牌号、型号)

[sql] view plaincopyprint?
  1. SQL> select a.cid,a.cbrand,a.cmodel from aps_car a;
  2. CID CBRAND               CMODEL
  3. ----------- -------------------- --------------------
  4. 2 京P 23001            大车
  5. 48 京P 23001            大车
  6. 49 黑H 52100            中车
  7. 51 黑H 09B89            小车
  8. 52 京Y 22090            大车
  9. 54 京A 00104            大车
  10. 55 京H 12345            大车
  11. 56 沈A 11223            中车
  12. 1 京P 00100            大车
SQL> select a.cid,a.cbrand,a.cmodel from aps_car a;
CID CBRAND               CMODEL
----------- -------------------- --------------------
2 京P 23001            大车
48 京P 23001            大车
49 黑H 52100            中车
51 黑H 09B89            小车
52 京Y 22090            大车
54 京A 00104            大车
55 京H 12345            大车
56 沈A 11223            中车
1 京P 00100            大车

distinct试试解决下(貌似解决了、但是没有完整的信息)

[sql] view plaincopyprint?
  1. SQL> select distinct a.cbrand from aps_car a;
  2. CBRAND
  3. --------------------
  4. 黑H 09B89
  5. 黑H 52100
  6. 京A 00104
  7. 京H 12345
  8. 京P 00100
  9. 京P 23001
  10. 京P 3H090
  11. 京Y 22090
  12. 沈A 11223
  13. 9 rows selected
  14. Executed in 0.219 seconds
SQL> select distinct a.cbrand from aps_car a;
CBRAND
--------------------
黑H 09B89
黑H 52100
京A 00104
京H 12345
京P 00100
京P 23001
京P 3H090
京Y 22090
沈A 11223
9 rows selected
Executed in 0.219 seconds

distinct试试输出完整信息(发现这哥们开始耳鼻的重复了,不行了。因为distinct会对后面的信息,进行匹配看重复不,而不是单个的)

[sql] view plaincopyprint?
  1. SQL> select distinct a.cbrand,a.cid from aps_car a;
  2. CBRAND                       CID
  3. -------------------- -----------
  4. 黑H 09B89                     51
  5. 黑H 09B89                     60
  6. 黑H 09B89                     70
  7. 黑H 09B89                     80
  8. 黑H 09B89                     93
  9. 黑H 09B89                    103
  10. 黑H 09B89                    113
  11. 黑H 09B89                    123
  12. 黑H 52100                     49
  13. 黑H 52100                     59
  14. 黑H 52100                     69
  15. 黑H 52100                     79
  16. 黑H 52100                     92
  17. 黑H 52100                    102
  18. 黑H 52100                    112
  19. 黑H 52100                    122
  20. 京A 00104                     54
SQL> select distinct a.cbrand,a.cid from aps_car a;
CBRAND                       CID
-------------------- -----------
黑H 09B89                     51
黑H 09B89                     60
黑H 09B89                     70
黑H 09B89                     80
黑H 09B89                     93
黑H 09B89                    103
黑H 09B89                    113
黑H 09B89                    123
黑H 52100                     49
黑H 52100                     59
黑H 52100                     69
黑H 52100                     79
黑H 52100                     92
黑H 52100                    102
黑H 52100                    112
黑H 52100                    122
京A 00104                     54

distinct再试试把cid字段放到前面(发现报错了,不行,不让这样用。。。nnd)

[sql] view plaincopyprint?
  1. SQL> select a.cid distinct a.cbrand from aps_car a;
  2. select a.cid distinct a.cbrand from aps_car a
  3. ORA-00923: FROM keyword not found where expected
SQL> select a.cid distinct a.cbrand from aps_car a;
select a.cid distinct a.cbrand from aps_car a
ORA-00923: FROM keyword not found where expected

现在用group by解决下(已经解决了,但是也不能每个字段都加上max啊)

[sql] view plaincopyprint?
  1. SQL>  select a.cbrand,max(a.cid),max(a.cmodel) from aps_car a group by a.cbrand;
  2. CBRAND               MAX(A.CID) MAX(A.CMODEL)
  3. -------------------- ---------- --------------------
  4. 黑H 09B89                   123 小车
  5. 黑H 52100                   122 中车
  6. 京A 00104                   125 大车
  7. 京H 12345                   126 大车
  8. 京P 00100                   128 大车
  9. 京P 23001                   121 大车
  10. 京P 3H090                   132 大车
  11. 京Y 22090                   124 大车
  12. 沈A 11223                   127 中车
  13. 9 rows selected
SQL>  select a.cbrand,max(a.cid),max(a.cmodel) from aps_car a group by a.cbrand;
CBRAND               MAX(A.CID) MAX(A.CMODEL)
-------------------- ---------- --------------------
黑H 09B89                   123 小车
黑H 52100                   122 中车
京A 00104                   125 大车
京H 12345                   126 大车
京P 00100                   128 大车
京P 23001                   121 大车
京P 3H090                   132 大车
京Y 22090                   124 大车
沈A 11223                   127 中车
9 rows selected

在整理下group by方式(好了现在所有字段都可以输出了)

[sql] view plaincopyprint?
  1. SQL> select * from aps_car b where b.cid in (select max(a.cid) from aps_car a group by a.cbrand);
  2. CID CBRAND               CMODEL               CORIGIN                                            CPRODUCE    CBUY        CPRIPAL        CVOLUME       CAPAC
  3. ----------- -------------------- -------------------- -------------------------------------------------- ----------- ----------- ---------- ----------- -----------
  4. 123 黑H 09B89            小车                 中国吉林长春                                       1998-9-18   2009-4-15   冯婉莹            1000        1500
  5. 122 黑H 52100            中车                 中国黑龙江哈尔滨                                   2007-9-4    2011-7-13   高洪建             700         850
  6. 125 京A 00104            大车                 台湾高雄仙台市                                     2003-9-4    2012-3-14   付政委            8000        9000
  7. 126 京H 12345            大车                 中国甘肃陇南                                       1987-2-17   2002-7-27   冯奇缘            2500        2000
  8. 128 京P 00100            大车                 中国北京                                           2000-6-2    2010-12-23  冯奇缘             500         800
  9. 121 京P 23001            大车                 中国北京                                           2010-10-25  2012-5-16   江风               500         800
  10. 132 京P 3H090            大车                 中国广东佛山                                       2011-3-16   2012-11-22  付政委            8000        9500
  11. 124 京Y 22090            大车                 韩国济州道江华郡                                   2003-5-8    2011-11-7   冯奇缘            9000        8000
  12. 127 沈A 11223            中车                 中国辽宁大连                                       1985-4-4    2011-6-4    付政委             499         944
  13. 9 rows selected
  14. Executed in 0.266 seconds

oracle distinct用法相关推荐

  1. oracle distinct 用法

    oracle distinct 是所有字段都相同才显示一条,要做到根据某一列,则如下 select t1.* from table t1 where t1.rowid = ( select min(t ...

  2. oracle distinct的用法,Oracle Distinct

    oracle函数 的 Oracle Distinct 在本教程中,将学习如何使用Oracle SELECT DISTINCT语句从表中查询不同的数据. Oracle SELECT DISTINCT语句 ...

  3. distinct用法及其优化

    在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count( ...

  4. oracle @spool,Oracle spool 用法小结

    Oracle spool 用法小结 转自:http://wallimn.javaeye.com/blog/472182 对于SPOOL 数据的SQL,最好要自己定义格式,以方便程序直接导入,SQL语句 ...

  5. oracle nvl用法

      oracle nvl用法 通过查询获得某个字段的合计值,如果这个值位null将给出一个预设的默认值 select nvl(sum(t.dwxhl),1) from tb_jhde t where ...

  6. oracle distinct关键字过滤掉重复记录

    为什么80%的码农都做不了架构师?>>>    oracle distinct关键字过滤掉重复记录  distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用 它来返回 ...

  7. with as 用法 oracle,with.as oracle的用法

    -----*************************with..as oracle的用法 --语法: with tempName as (select ....) select ... --例 ...

  8. mysql中去重的用法_mysql中去重 distinct 用法

    在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count( ...

  9. Oracle数据库用法汇总

    一些Oracle数据库用法的小总结 1.使用insert into创建新表 insert into destdb.sub_contract (userid,contractid) select msi ...

最新文章

  1. 体绘制(Volume Rendering)概述之4:光线投射算法(Ray Casting)实现流程和代码(基于CPU的实现)...
  2. Hadoop Shell命令
  3. (5) ebj学习:ejb用jpa操作数据库1
  4. JAVA格式化当前日期或者取年月日
  5. 遍历strs数组,并判断数组中每一个元素的长度, * 将长度为偶数的元素和长度为奇数的元素分别存放在两个集合中,
  6. linux下c/c++实例之socket服务器实例
  7. jni jvm 内存泄漏_解析Java的JNI编程中的对象引用与内存泄漏问题
  8. webview 禁用横竖屏切换_X5内核WebView横屏切换崩溃
  9. EF入门 IQueryable和IEnumberable的区别
  10. Hadoop 服务器配置的副本数量 管不了客户端
  11. 关于在mysql和oracle中编码对varchar等类型的影响
  12. mnist数据集下载——mnist数据集提供百度网盘下载地址
  13. Python基础语法1
  14. wamp安装composer
  15. uni-app 获取手机设备各项信息
  16. 三星矫情,重温Galaxy S5发布会收买人心
  17. 微信 昵称带 表情存入mysql数据库
  18. 软件测试工程师岗位个人简历怎么写
  19. 如何下载Tomcat
  20. 基于FCM算法优化的图像分割研究(附源代码)

热门文章

  1. iOS之深入解析依赖注入的原理与应用
  2. iOS之深入解析图片解压缩到渲染的过程与原理
  3. linux精华文章汇总
  4. 2018年第九届蓝桥杯C/C++ A组国赛 —— 第四题:约瑟夫环
  5. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1102:与指定数字相同的数的个数
  6. 【机器视觉】 HDevelop语言基础(六)-错误处理
  7. 【Qt】Qt布局管理器
  8. mysql 慢查询 不重启_开启mysql慢查询日志,不重启数据库的方法
  9. 回复群邮件导致邮件服务器,电子邮件逐个发-邮件群发软件-使用手册
  10. 文字转wav_这6款超良心语音转文字工具,真让人省心!