博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么办法可以替代distinct
阅读量:5264 次
发布时间:2019-06-14

本文共 781 字,大约阅读时间需要 2 分钟。

  今天在论坛上看到一个面试题,是说有什么办法可以替代distinct,得到同样的结果。答案都被大家说的差不多了,发现挺有意思的,就记录一下:

SQL> select num from t1;

       NUM
----------
         6
         6
         7
         8
         9
         1
         1
         1
      
1
        1
         1
         1
        1
         1
        1
15 rows selected
 
SQL> select distinct num from t1;
       NUM
----------
         1
         6
         8
     
  7
        9
5 rows selected

一、用unique代替distinct:

这个比较无耻,基本属于说了跟没说一样,但确实是对的

SQL> select unique num from t1;
       NUM
----------
         1
         6
         8
     
  7
        9
5 rows selected
二、用group by来做:
这个应该是出题者的本意
SQL> select num from t1 group by num;
       NUM
----------
         1
         6
         8
         7
         9
5 rows selected
三、用union和minus:
因为union和minus默认都是先distinct然后再做聚集,所以可以这样做:
SQL> select num from t1 minus select 999 from dual;
       NUM
----------
         1
         6
         7
         8
         9
5 rows selected
 
SQL> select num from t1 union select num from t1 ;
       NUM
----------
         1
         6
         7
         8
         9
5 rows selected
一个是minus一个没有的项,一个是union它本身。
 

转载于:https://www.cnblogs.com/xifenglou/p/4441863.html

你可能感兴趣的文章
slab分配器
查看>>
数据清洗
查看>>
【读书笔记】C#高级编程 第三章 对象和类型
查看>>
针对sl的ICSharpCode.SharpZipLib,只保留zip,gzip的流压缩、解压缩功能
查看>>
【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
【SVM】libsvm-python
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
Leetcode Balanced Binary Tree
查看>>
九.python面向对象(双下方法内置方法)
查看>>
go:channel(未完)
查看>>
[JS]递归对象或数组
查看>>
LeetCode(17) - Letter Combinations of a Phone Number
查看>>
Linux查找命令对比(find、locate、whereis、which、type、grep)
查看>>
路由器外接硬盘做nas可行吗?
查看>>
python:从迭代器,到生成器,再到协程的示例代码
查看>>
Java多线程系列——原子类的实现(CAS算法)
查看>>
在Ubuntu下配置Apache多域名服务器
查看>>
多线程《三》进程与线程的区别
查看>>
linux sed命令
查看>>
html标签的嵌套规则
查看>>