Plsql 查询结果中是否有统计组的功能?

Plsql 查询结果中是否有统计组的功能?,plsql,Plsql,这是一个查询: SELECT count(*) FROM Points WHERE i_id IN (1, 22, 579, 5887) AND i_requirement_id is not null GROUP BY i_requirement_id 我得到了每组的需求数量 我要数一数所有的小组 例如,从下一个表 i_id i_requirement_id 1 1022 22 1022 579 1059 5887 1022

这是一个查询:

SELECT count(*) 
FROM Points 
WHERE i_id IN (1, 22, 579, 5887) AND i_requirement_id is not null 
GROUP BY i_requirement_id
我得到了每组的需求数量

我要数一数所有的小组

例如,从下一个表

i_id     i_requirement_id
1         1022
22        1022
579       1059
5887      1022

我得到3分和1分。但我只需要得到2,因为在表中,我只有2组I_requirement_id。

可能是类似于

SELECT COUNT(DISTINCT i_requirement_id)
FROM Points 
WHERE i_id IN (1, 22, 579, 5887) AND i_requirement_id is not null

distinct子句允许您只计算不同的项目

为什么您不喜欢Fabio的解决方案?这已经足够好了。
第二种方法是使用解析函数

SELECT 
  i_requirement_id, 
  count(*) as count_inside_group,
  count(i_requirement_id) over() as count_of_groups
FROM Points 
WHERE i_id IN (1, 22, 579, 5887) AND i_requirement_id is not null 
GROUP BY i_requirement_id

对不起,我正试图回避这样的问题。我使用了这个变体,比如fill-in。我希望有人能告诉我一个函数。