distinct去重再取count oracle_oracle count distinct - CSDN
精华内容
参与话题
  • Oracle去重进行count()计数

    万次阅读 2019-03-19 14:43:05
    一般地:有意义的计数首先都需要去除重复,然后进行count()计数! 这个时候就去重的逻辑就显得尤为重要! 一、首先说说我个人对以下两个函数的理解 sum()是基于分组,也就是说有sum()的SQL语句中必须要有group ...

    一般地:有意义的计数首先都需要去除重复,然后再进行count()计数!

    这个时候就去重的逻辑就显得尤为重要!

    一、首先说说我个人对以下两个函数的理解

    sum()是基于分组,也就是说有sum()的SQL语句中必须要有group by关键字,而count()可不必基于分组,二者在大多数情况下用以实现计数,但不同于count()的是,sum()内的字段必须要为number类型,常用于金额等数据的汇总。而count()则可以为varchar2类型的字段。用于统计以count()内的字段为列的总记录数。

    二、应用实例

    需求: 分别统计拥有份额的客户总数,以及客户下的机构、自然人的数量。

    前提条件:份额表记录客户的多条数据,但是有体现唯一客户的字段c_fundacco,单纯的使用count(a.c_fundacco)显然存在重复的问题。这个时候去重关键字distinct就显得尤为重要了!

    SQL语句实现:

    select count(distinct(a.c_fundacco)) f_sumcount, /*统计总人数是对唯一标识c_fundacco进行去重*/
    
           count(distinct decode(b.c_custtype, '0', a.c_fundacco, null)) f_orgcount,/*统计机构时先以客户类型decode归类,再进行去重计数*/
    
           count(distinct decode(b.c_custtype, '1', a.c_fundacco, null)) f_percount/*类似机构*/
    
      from  tshares a,
    
            tclientinfo b
    
     where  a.c_clientinfoid = b.c_clientinfoid

     

    展开全文
  • Oracle去重函数distinct

    千次阅读 2019-11-27 10:40:24
    distinct用于返回唯一不同的值。 表table1: id value 1 a 1 a 2 b 3 b 4 c 5 c 表table2: username password tom s123456 toms 123456 表table3: ...

    distinct用于返回唯一不同的值。

    表table1:

    id value
    1 a
    1 a
    2 b
    3 b
    4 c
    5 c

    表table2:

    username password
    tom s123456
    toms 123456

     

    表table3:

    username phone
    tom 10086
    jack 10010

    作用于单列

    select distinct value from table1

    执行结果如下:

    value
    a
    b
    c

     

    作用于多列

    例1:

    select distinct id, name from table1

    执行结果如下:

    id value
    1 a
    2 b
    3 b
    4 c
    5 c

    通过这个例子可以看出,多列去重是根据写在distinct后面的各个字段来去重的(当这几个字段所有的列的值都相同时才会被认为是重复数据)。

    例2:

    select distinct username, password from table2

    执行结果如下:

    username password
    tom s123456
    toms 123456

    执行结果为两行,这说明distinct是分别作用了username和password列,而不是把这两列的值“拼接”后再去重的。

     

    多表查询

    select distinct o.username from table2 o , table3 t  where  o.username = t.username ;

    执行结果如下:

    username
    tom

     

    此外还需要注意一下几点:

    1.distinct必须放在开头,如果不放在开头会报错

    select id, distinct value from table1;   --会提示错误

    2.多表查询时,如果表中有相同字段名,需指定是那张表的字段

    select distinct username from table2 o , table3 t  where  o.username = t.username    --会提示错误

    3.COUNT统计单字段

    select count(distinct value) from table1;  --表中value去重后的数目

    4.COUNT统计多字段

    count是不能统计多个字段的,可以使用嵌套查询解决:

    select count(*) from (select distinct username, password from table2) as t2;

     如果这样查询:select count(distinct value, id) from table1;会报错

    5.显示字段

    显示的字段只能是distinct指定的字段

    展开全文
  • oracle查询对某个字段进行去重处理

    千次阅读 2019-10-29 14:57:51
    oracle查询对某个字段进行去重处理需要使用distinct函数 比如从A表查询aa字段和bb字段,然后对aa字段进行去重,查询语句如下: SELECT distinct(a.aa) as aa,a.bb as bb FROM A a 提示:去重的字段必须放在第一...

    oracle查询对某个字段进行去重处理需要使用distinct函数

    比如从A表查询aa字段和bb字段,然后对aa字段进行去重,查询语句如下:

    SELECT  distinct(a.aa) as aa,a.bb as bb FROM A a

    提示:去重的字段必须放在第一个位置

    查询去重后的数量:

    SELECT  count(distinct(a.aa)) as aacount,a.bb as bb FROM A a

     

    展开全文
  • oracle 去重几个方法

    万次阅读 2014-08-22 14:58:07
    原文laizi 几个删除重复记录的SQL语句  1.... 2.... 3.... 据据oracle带的rowid属性,进行判断,是否存在重复,语句如下:  查数据:  select * from table1 a where rowid !=(select max


    几个删除重复记录的SQL语句

      1.用rowid方法

      2.用group by方法

      3.用distinct方法

      1。用rowid方法

      据据oracle带的rowid属性,进行判断,是否存在重复,语句如下:

      查数据:

      select * from table1 a where rowid !=(select max(rowid)

      from table1 b where a.name1=b.name1 and a.name2=b.name2……)

      删数据:

      delete from table1 a where rowid !=(select max(rowid)

      from table1 b where a.name1=b.name1 and a.name2=b.name2……)

      2.group by方法

      查数据:

      select count(num), max(name) from student --列出重复的记录数,并列出他的name属性

      group by num

      having count(num) >1 --按num分组后找出表中num列重复,即出现次数大于一次

      删数据:

      delete from student

      group by num

      having count(num) >1

      这样的话就把所有重复的都删除了。

      3.用distinct方法 -对于小的表比较有用

      create table table_new as select distinct * from table1 minux

      truncate table table1;

      insert into table1 select * from table_new;

    展开全文
  • CASE WHEN v.calltype='1' THEN COUNT(DISTINCT v.callid) END num, CASE WHEN v.isworktime='0' THEN COUNT(DISTINCT v.callid) END num1, CASE WHEN v.isworktime='1' THEN COUNT(DISTINCT v.callid) END num2,...
  • Oracle三种去重的方法 distinct group by rowid 分组函数:作用于一组数据,并对一组数据返回一个值 常见的分组函数有: count 返回找到的记录数 min 返回一个数字列或计算列的最小值 max 返回一个数字列或计算列...
  • Oracle 数据去重统计

    千次阅读 2020-01-17 16:13:18
    select count(distinct 字段 ) from table
  • Oracle去重函数(一)

    千次阅读 2019-06-12 17:43:23
    1、distinct (1)、常用的distinct ...select count(distinct column) from table;–查去重后数量 (3)、distinct必须放在开头 select id, distinct name from A; --会提示错误,因为distinct必须放在开...
  • SQL 去重不用distinct如何实现?

    千次阅读 2017-07-10 20:57:10
    1、今日面试问到SQL语句去重关键字?一时只想起来distinct【果然一定要注意总结啊 答:用distinct关键字只能过滤查询字段中所有记录相同的(记录集相同),而如果要指定一个字段却没有效果,另外distinct关键字会...
  • Oracle根据多列去重

    千次阅读 2019-08-19 14:41:24
    (1)distinct 关键词 distinct用于返回唯一不同的值,可作用于单列和多列 但必须将其放在开头,否则会提示错误 ...与聚合函数联用可以在多个字段的同时去重其中一个字段 例如要显示的字段为A、...
  • 在orcale中,得到去重之后的count

    千次阅读 2017-06-01 09:27:51
    在有些情况下,我们需要得到去重之后的count数,例如:一个教室 对应多个班级,我们需要知道有多少个教室 SQL语句:select count(distinct 表属性 ) from 表 便可以得到去重之后的数量
  • 但是我想要通过一个字段去重,就是那个字段重复的全部去掉,代码如下: ``` select distinct myt.task_seq , mytr.actual_start_date,mytr.actual_end_date,mytr.status from mss_yearend_task ...
  • sql之count distinct 空值null

    千次阅读 2018-10-09 14:20:28
    https://blog.csdn.net/huangpei2008/article/details/5307860 distinct some 返回值中含有null count some 中没有计算null count(distinct some)中去重之后计算不包含null的总数量
  • ORACLE GROUP BY 如何去重 小汇

    千次阅读 2010-12-17 15:12:00
    ORACLE GROUP BY 去重复数据
  • 数据库的几种去重方法总结

    万次阅读 2017-06-10 13:56:44
    一、数据库中的去重操作(删除数据库中重复记录的SQL语句)主要有三种方法 (1)、rowid方法 (2)、group by 方法 (3)、distinct方法 1、用rowid方法 根据Oracle带的rowid属性,可以进行判断是否存在重复...
  • 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是...
  • T-SQL对多个字段去重并计数

    千次阅读 2018-04-16 16:06:51
    定义和用法可以一同使用 DISTINCTCOUNT ...语法SELECT COUNT(DISTINCT column(s)) FROM table例子注意:下面的例子仅适用于 ORACLE 和 Microsoft SQL server,不能用于 Microsoft Access。SELECT COUNT(D...
1 2 3 4 5 ... 20
收藏数 4,263
精华内容 1,705
关键字:

distinct去重再取count oracle