postgresql 使用ID查找HIT和MISS的总计数,并根据POSTGRES中的另一行跳过重复项

yfwxisqw  于 2023-02-08  发布在  PostgreSQL
关注(0)|答案(2)|浏览(142)

我有张table-

id---------rowNum------status
    aa23       1            HIT
    aa23       1            HIT
    aa23       1            HIT
    aa23       2            MISS
    aa23       2            MISS
    aa24       2            MISS
    aa24       2            MISS

基本上,我需要根据给定的ID获取HIT和MISS的计数
例如,如果给我aa 23,我应该返回

status-----count
    HIT          1
    MISS         1

rowNums应不同,因此给定id= aa 23,HIT发生三次,但所有rowNums均为1,因此对于Miss应计数一次

ubof19bj

ubof19bj1#

您可以先元素化所有重复项,也可以只选择所需的ID和结果行的计数
一个一个零个一个一个一个一个一个一个一个一个一个一个一个
| 身份证|地位|计数--|
| - ------|- ------|- ------|
| aa24|错过|1个|
| aa23|击中|1个|
| aa23|错过|1个|

SELECT 3

fiddle

js4nwp54

js4nwp542#

可以使用group by执行此操作,如下所示:

with cte as (
  select id, rowNum, status
  from mytable
  where id = 'aa23'
  group by id, rowNum, status
)
select status, count(1) 
from cte
group by status;

Demo here

相关问题