我有以下表格。
group _id p_id version value
1 1 1 10
1 1 2 11
1 1 2 12
1 2 3 13
2 1 2 14
2 1 3 15
2 1 2 16
我想要统计每个group_id的记录数以及每个group_id的不同p_id + version的数量。我有以下查询语句。
SELECT "group_id",count(*) , count(distinct "p_id","version")
FROM tbl
group by "group_id"
显然,这不会起作用,因为Oracle会在COUNT上给我错误。
ORA-00909: invalid number of arguments
我知道可以通过子查询来实现。但是,是否有更简单的方法获得相同的结果?考虑到性能对我很重要,因为我们的表中有5亿多条记录。 SQL Fiddle