如何计算Oracle中的唯一行

时间:2014-10-23 22:35:27

标签: sql oracle

我有一个包含很多列的oracle数据库表。我想计算完全唯一行的数量。我唯一能找到的是:

SELECT COUNT(DISTINCT col_name) FROM table;

然而,这需要我列出所有列,但我无法提出能够为我做这些的语法。我猜这是因为这个查询性能会非常低?有推荐的方法吗?

4 个答案:

答案 0 :(得分:26)

怎么样

SELECT COUNT(*) 
FROM (SELECT DISTINCT * FROM Table)

答案 1 :(得分:4)

这取决于你想要完成的任务。 要按特定列计算不同的行,以便您知道存在哪些数据,以及有多少不同的数据:

SELECT DISTINCT 

A_CODE, COUNT(*) 

FROM MY_ARCHV

GROUP BY A_CODE

- 这告诉我有93个唯一代码,以及每个代码中有多少个。

另一种方法

- 如何计算oracle表中存在的类型值的数量:
select A_CDE, - 您需要计算的价值
count(*) as numInstances - 每个值的多少 from A_ARCH - 它所在的表格 group by A_CDE - 排序方法

无论哪种方式,你都会得到这样的东西:

A_CODE  Count(*)

1603    32

1600    2

1605    14

答案 2 :(得分:2)

我认为您希望计算来自此类

的表中的所有不同行
select count(1) as c
from (
    select distinct *
    from tbl
) distinct_tbl;

答案 3 :(得分:-1)

SELECT DISTINCT col_name ,计数(*)FROM table_name 分组 col_name