посчитать аналогичное значение атрибута - PullRequest
0 голосов
/ 11 марта 2019

Я работаю (тренируюсь) над набором данных со структурой таблицы ниже.Я разработал различные запросы и до сих пор был успешным.Тем не менее, два вопроса беспокоят меня, и мне было интересно, если вы, ребята, могли бы указать, что я делаю неправильно.

1: необходимо извлечь топ-10 AuthorAccountId, который создал наибольшее количество изменений в проекте 'abc'.

например, возвращает топ-10 AuthorAccountId, который создал наибольшее количество изменений в проекте'ABC'.Запрос должен возвращать два столбца: authorId и количество изменений, внесенных каждым автором.

Ниже приведен запрос, который я разработал, но который не дает мне желаемого результата.

SELECT ch_authoraccountid,count(ch_project)
FROM t_change 
WHERE ch_project LIKE 'abc' 
ORDER BY ch_authoraccountId DESC 
LIMIT 10

2: вернуть имена авторов, которые не представили никаких изменений в течение 2017 года,(этот будет подзапросом к t_change).

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

Ниже приведен запрос

SELECT p_name 
FROM t_people 
WHERE p_accountid IN (SELECT ch_createdTime 
                      FROM t_change 
                      WHERE ch_createdTime != '2016-01-01')")

Ссылка: Ян, Р.Г. Кула, Н. Йошида и Х. Иида, «Разработка современных хранилищ обзора кода: набор данных о людях, процессах и продуктах», 13-я рабочая конференция IEEE / ACM 2016 года по горному делуРепозитории программного обеспечения (MSR), Остин, Техас, 2016, стр. 460-463.

https://github.com/kin-y/miningReviewRepo/wiki/Database-Schema

ER diagram

1 Ответ

1 голос
/ 11 марта 2019

Для первого запроса попробуйте это:

SELECT ch_authoraccountid, COUNT(ch_project)
FROM t_change 
WHERE ch_project = 'abc' 
GROUP BY ch_authoraccountid
ORDER BY COUNT(ch_project) DESC 
LIMIT 10

Будет подсчитано количество изменений в проекте 'abc' на authoraccountid.

Для второго:

SELECT p_name 
FROM t_people 
WHERE p_accountid NOT IN (SELECT ch_authorAccountId 
                          FROM t_change 
                          WHERE ch_createdTime BETWEEN '20170101' AND '20171231')")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...