A           B
0           0
0           1
1           2
以上为一个表的两个字段
如果count(distinct A)的话应该是2,我想以这两个字段为组合来计算不重复的数据有多少条
应该怎么写啊
上面的A和B组合起来的话,不重复的应该是3条记录

解决方案 »

  1.   

    select count(*)
    from tb
    group by a,b
      

  2.   

    select count(distinct a)
    from
    (select a from tb union select b from tb) t
      

  3.   

    select count(distinct a)
    from
    (select a from tb union all select b from tb) t
      

  4.   

    select a,count(distinct a) as 次数
    from
    (select a from tb union all select b from tb) t
    group by a
      

  5.   

    count(distinct(A+B))
    如果是数值记得转成字符类型
      

  6.   


    SELECT COUNT(*)
    FROM (
    SELECT DISTINCT a,b FROM [table]
    ) tmp
      

  7.   

    就这个意思,但是好像报错ORA-00937: not a single-group group functionselect F4102.IBLITM,F4102.IBITM,F4102.IBMCU,count(distinct(F41021.LILOCN+F41021.LILOTN)),F41021.*
                                         from PRODDTA.F4102 inner join PRODDTA.F41021 on F4102.IBITM=F41021.LIITM and F4102.IBMCU=F41021.LIMCU
                 where F4102.IBVEND='14000'
      

  8.   

    要加group by的select F4102.IBLITM,F4102.IBITM,F4102.IBMCU,count(distinct(F41021.LILOCN+F41021.LILOTN)),F41021.*
    from PRODDTA.F4102 
    inner join PRODDTA.F41021 on F4102.IBITM=F41021.LIITM 
    and F4102.IBMCU=F41021.LIMCU
    F4102.IBVEND='14000'
    group by F4102.IBLITM,F4102.IBITM,F4102.IBMCU,F41021.*--把*替换成所有字段
      

  9.   

    还是报错ORA-01722: invalid numberselect F4102.IBLITM,F4102.IBITM,F4102.IBMCU,count(distinct(F41021.LILOCN+F41021.LILOTN)),F41021.LIPQOH
    from PRODDTA.F4102 inner join PRODDTA.F41021 on F4102.IBITM=F41021.LIITM and F4102.IBMCU=F41021.LIMCU where F4102.IBVEND='14000'
    group by F4102.IBLITM,F4102.IBITM,F4102.IBMCU,F41021.LIPQOH
      

  10.   

    select count(1) from tb group by A,B
      

  11.   

    解决了,奶奶的,在oracle中字符串连接是 || ,而sql中是用+