我有一个包含很多列的oracle数据库表。我想计算完全唯一行的数量。我唯一能找到的是:
SELECT COUNT(DISTINCT col_name) FROM table;
然而,这需要我列出所有列,但我无法提出能够为我做这些的语法。我猜这是因为这个查询性能会非常低?有推荐的方法吗?
答案 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