Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL-与被抑制行数不同_Sql_Oracle_Count_Distinct_Rownum - Fatal编程技术网

Oracle SQL-与被抑制行数不同

Oracle SQL-与被抑制行数不同,sql,oracle,count,distinct,rownum,Sql,Oracle,Count,Distinct,Rownum,当我在sql中使用DISTINCT子句时,如何添加最后一列,其中行数被“抑制”(因为它们相等)。您不能直接使用DISTINCT。您可以在子查询中添加一个分析的count(),然后应用distinct,但是使用聚合的count()和分组方式更简单。您必须在group by子句中包含所有现有的select列表项 如果你有这样一张桌子: create table t42 (col1 number, col2 varchar2(10)); insert into t42 values (42, 'AAA

当我在sql中使用DISTINCT子句时,如何添加最后一列,其中行数被“抑制”(因为它们相等)。

您不能直接使用
DISTINCT
。您可以在子查询中添加一个分析的
count()
,然后应用
distinct
,但是使用聚合的
count()
分组方式更简单。您必须在
group by
子句中包含所有现有的select列表项

如果你有这样一张桌子:

create table t42 (col1 number, col2 varchar2(10));
insert into t42 values (42, 'AAA');
insert into t42 values (42, 'AAA');
insert into t42 values (42, 'BBB');
insert into t42 values (42, 'BBB');
insert into t42 values (42, 'BBB');
insert into t42 values (43, 'AAA');
您目前正在执行以下操作:

select distinct col1, col2
from t42
order by col1, col2;

      COL1 COL2     
---------- ----------
        42 AAA        
        42 BBB        
        43 AAA        
要获取副本的数量,可以执行以下操作:

select col1, col2, count(*)
from t42
group by col1, col2
order by col1, col2;

      COL1 COL2         COUNT(*)
---------- ---------- ----------
        42 AAA                 2 
        42 BBB                 3 
        43 AAA                 1 

谢谢这比我期望的更复杂,但有效。