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。我希望有人能告诉我一个函数。