제목이 내 문제에 맞는지 잘 모르겠다. 예제를 제시하는 것이 좋습니다.sql - 서로 다른 수준의 참여에서 두 개의 서로 다른 개수를 선택하는 방법은 무엇입니까?
나는 세 테이블 : Publication
, Journal
, Published
이 있습니다. 이들의 열은 다음과 같다 :
**Publication table**
pub_id, journal_id
**Journal table**
journal_id, article_id
**Published table**
article_id
내가
select pub.pub_id, count(j.article_id)
from publication pub
inner join journal j on pub.journal_id=j.journal_id
group by pub.pub_id
내가 각
pub_id
게시해야 저널의
total number of articles
받을 수 있나요 그렇다면, 맞죠?
내가
select pub.pub_id, count(p.article_id)
from publication pub
inner join journal j on pub.journal_id=j.journal_id
inner join published p on j.article_id=p.article_id
group by pub.pub_id
내가 바로 각
pub_id
게시해야 저널의
total number of published articles
얻을한다면?
위의 두 쿼리를 통해 the number of articles that need to be published
및 the number of articles that have been published
을 얻을 수 있습니다.
제 질문은이 두 숫자를 동시에 얻는 단일 쿼리를 작성하는 방법입니다.
이 두 숫자를 같은 테이블에 표시해야합니다.
P.S : 나는 join
을 추가하여 추가 여분의 행에도 불구하고, 당신은 한 번만 저널을 계산 count(distinct ...)
을 사용할 수 있습니다
select pub.pub_id, count(p.article_id), count(distinct j.article_id)
from publication pub
inner join journal j on pub.journal_id=j.journal_id
left join published p on j.article_id=p.article_id
group by pub.pub_id
예, 작동합니다. –