Счетчик SQL еще раз - PullRequest
       3

Счетчик SQL еще раз

0 голосов
/ 11 января 2019

Я использую пример данных, описанных здесь

Я хотел бы иметь список учреждений с подсчетом их количества по всем статьям для данного автора.

Этот запрос дает список, который является правильным

SELECT  DISTINCT p.name || ", " || p.country as col1,  w2.paper_id,   w2.inst_id
FROM (
    authors a
    INNER JOIN writtenby w1 
   ON a.author_id = w1.author_id 
    INNER JOIN writtenby w2 
   ON w1.paper_id = w2.paper_id 
     INNER JOIN inst p 
   ON  w2.inst_id = p.inst_id 

) 
WHERE (a.name) = "De La Rue"  AND (a.firstname) = "A"

Например, я считаю три вхождения inst_id = 5.

Я не могу перевести это количество с помощью SQL.

Я пробовал это

SELECT  DISTINCT p.name || ", " || p.country as col1,  count(w2.paper_id)
FROM (
    authors a
    INNER JOIN writtenby w1 
   ON a.author_id = w1.author_id 
    INNER JOIN writtenby w2 
   ON w1.paper_id = w2.paper_id 
     INNER JOIN inst p 
   ON  w2.inst_id = p.inst_id 

) 
WHERE (a.name) = "De La Rue"  AND (a.firstname) = "A"
GROUP BY  w2.inst_id

Что возвращает:

col1    count(w2.paper_id)
Universite de Paris, France 12
Universite de Lyon, France  6
Univ Freiburg, Germany  6
EPFZ, Switzerland   8

И это кажется совершенно неправильным ...

Спасибо за исправление!

François

1 Ответ

0 голосов
/ 11 января 2019

Попробуйте использовать COUNT(DISTINCT w2.paper_id) вместо COUNT(w2.paper_id).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...