code

Oracle - 여러 개의 카운트를 하나의 쿼리로 반환

starcafe 2023. 8. 11. 22:27
반응형

Oracle - 여러 개의 카운트를 하나의 쿼리로 반환

아래에 자세히 나와 있는 몇 가지 질문이 있습니다.두 카운트를 모두 반환하는 하나의 SQL 쿼리를 실행하고 싶은데 가능한가요?

1.

select nvl(count(rowid), 0) from tablename where OPP = 'FOO' and date = 'BAZ';

2.

select nvl(count(rowid), 0) from tablename where OPP = 'BAR' and date = 'BAZ';

지금까지 검색에서 MSSQL 관련 솔루션만 찾았습니다.

단일 행에 필요한 경우:

SELECT
    COUNT(CASE OPP WHEN 'FOO' THEN 1 END),
    COUNT(CASE OPP WHEN 'BAR' THEN 1 END)
FROM tablename
WHERE OPP IN ('FOO', 'BAR') AND date = 'BAZ'

(Thilo의 GROUP BY 접근 방식이 어쨌든 더 나은 일반적인 솔루션입니다.)

편집: 제거했습니다.NVL()나는 내가 왜 그것을 절대 사용하지 않는지 잊었습니다.

조건이 실제로 그렇게 보이는 경우(같은 표, 그룹에서 하나의 필드만 다름):

select opp, count(*) from tablename
where date = 'BAZ'
group by opp
having opp in ('FOO', 'BAR');

임의 쿼리의 경우:

select 'A', count(*) from tableA
union all
select 'B', count(*) from tableB

문장과 함께 를 사용할 수 있습니다.

with
count1 as (
select ...
),
count2 as (
select ...
)
select tot1, tot2
from count1, count2

언급URL : https://stackoverflow.com/questions/6356564/oracle-return-multiple-counts-as-one-query

반응형