Как объединить несколько значений в операторе AND OR в Postgresql - PullRequest
0 голосов
/ 03 марта 2019

Я использую следующий сценарий при обращении к моей базе данных:

SELECT 
 1.0*(COUNT(*) FILTER(WHERE "stitch_jira"."issues"."fields__status__statusCategory__name"='Done'
 AND "stitch_jira"."issues"."fields__project__key"='FLUM'
 AND "stitch_jira"."issues"."fields__issuetype__name"='Task'
 OR "stitch_jira"."issues"."fields__issuetype__name"='Story'))/
 (COUNT(*) FILTER(WHERE "stitch_jira"."issues"."fields__status__statusCategory__name" IN('To Do','In Progress','Done')
 AND "stitch_jira"."issues"."fields__project__key"='FLUM'
 AND "stitch_jira"."issues"."fields__issuetype__name"='Task'
 OR "stitch_jira"."issues"."fields__issuetype__name"='Story'))
FROM "stitch_jira"."issues"

По сути, это должны быть ЗАВЕРШЕНЫ ЗАДАЧИ и ИСТОРИИ, а затем разделены на общее количество задач и историй.Результаты не видят, чтобы продемонстрировать это.Это прекрасно работает, если я только делаю Задачи или только делаю истории, но не тогда, когда я делаю и то, и другое.

Где я ошибся?

1 Ответ

0 голосов
/ 03 марта 2019

Правильный ответ был следующим:

SELECT 
 1.0*
 ((COUNT(*) FILTER(WHERE "stitch_jira"."issues"."fields__status__statusCategory__name"='Done'
 AND "stitch_jira"."issues"."fields__project__key"='FLUM'
 AND "stitch_jira"."issues"."fields__issuetype__name"='Task'))
 +
 (COUNT(*) FILTER(WHERE "stitch_jira"."issues"."fields__status__statusCategory__name"='Done'
 AND "stitch_jira"."issues"."fields__project__key"='FLUM'
 AND "stitch_jira"."issues"."fields__issuetype__name"='Story')))
 /
 ((COUNT(*) FILTER(WHERE "stitch_jira"."issues"."fields__status__statusCategory__name" IN('To Do','In Progress','Done')
 AND "stitch_jira"."issues"."fields__project__key"='FLUM'
 AND "stitch_jira"."issues"."fields__issuetype__name"='Task'))
 +
 (COUNT(*) FILTER(WHERE "stitch_jira"."issues"."fields__status__statusCategory__name" IN('To Do','In Progress','Done')
 AND "stitch_jira"."issues"."fields__project__key"='FLUM'
 AND "stitch_jira"."issues"."fields__issuetype__name"='Story')))
FROM "stitch_jira"."issues"

Проблема заключалась в том, что не было достаточно жесткого связывания условия ИЛИ, и он получал данные в своих расчетах за пределами отфильтрованного проекта.

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