当我在sql中使用 DISTINCT 子句时,如何添加一个最后一列,其中包含被抑制的行数" 只有一个(因为它们是平等的)。
答案 0 :(得分:1)
您无法直接使用distinct
执行此操作。您可以在已应用count()
的子查询中添加分析distinct
,但使用汇总count()
和group by
会更简单。您必须在group by
子句中包含所有现有的选择列表项。
所以,如果你有一个这样的表:
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