0
간단한 구성이 있습니다. 2 테이블이 다 대다 관계로 연결되어 있으므로 3 개의 테이블이 있습니다.여러 개의 매개 변수가있는 GROUP BY 및 COUNT
표 저자 :
idAuthor INT
name VARCHAR
표 간행물 :
idPublication INT,
title VARCHAR,
date YEAR,
type VARCHAR,
conference VARCHAR,
journal VARCHAR
표 author_has_publication :
Author_idAuthor,
Publication_idPublication
나는 적어도이 개 논문을 발표 한 모든 저자의 이름을 얻기 위해 노력하고 있어요 회의 SIGMOD 및 회의 PVLDB. 지금 당장이 작업을 수행했지만 여전히 두 가지 결과가 나타납니다. 내 쿼리 :
SELECT author.name, publication.journal, COUNT(*)
FROM author
INNER JOIN author_has_publication
ON author.idAuthor = author_has_publication.Author_idAuthor
INNER JOIN publication
ON author_has_publication.Publication_idPublication = publication.idPublication
GROUP BY publication.journal, author.name
HAVING COUNT(*) >= 2
AND (publication.journal = 'PVLDB' OR publication.journal = 'SIGMOD');
반환
+-------+---------+----------+
| name | journal | COUNT(*) |
+-------+---------+----------+
| Renee | PVLDB | 2 |
| Renee | SIGMOD | 2 |
+-------+---------+----------+
당신은 그냥 1 시간 이름을 원하는대로 결과가 정확하지만 두 배로 볼 수 있듯이
.다른 질문, 단 하나의 회의에 대한 number 매개 변수를 수정하는 방법 (예 : 최소한 3 개의 SIGMOD 및 최소 1 개의 PVLDB를 게시 한 모든 저자 확보)
그것은 또한 반환하기 때문에이 작동하지 않습니다 저자는 PVLDB 및 SIGMOD 회의에 대한 출판물이 2 개 미만인 경우 각 회의 간행물을 분리하여 계산하는 것이 어려우므로 –
질문을 오해했습니다. 지금 작업해야합니다. @Mayeulsgc – sagi
덕분에, 나는 같은 요청으로 GROUP BY, WHERE 및 HAVING을 사용하는 데 많은 어려움을 겪고있었습니다. –