如何计算Oracle中的唯一行

mck*_*mck 15 sql oracle

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

SELECT COUNT(DISTINCT col_name) FROM table;
Run Code Online (Sandbox Code Playgroud)

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

oka*_*ram 33

怎么样

SELECT COUNT(*) 
FROM (SELECT DISTINCT * FROM Table)
Run Code Online (Sandbox Code Playgroud)

  • 我来到这里是因为我希望在不使用子查询的情况下有更简单的方法. (8认同)

小智 5

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

SELECT DISTINCT 

A_CODE, COUNT(*) 

FROM MY_ARCHV

GROUP BY A_CODE
Run Code Online (Sandbox Code Playgroud)

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

另一种方法

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

无论哪种方式,您都会得到如下所示的内容:

A_CODE  Count(*)

1603    32

1600    2

1605    14
Run Code Online (Sandbox Code Playgroud)