Манипулирование значением результата с PostgreSql - PullRequest
0 голосов
/ 27 апреля 2020

Я создаю водопад из выходных данных ниже и хотел бы, чтобы значения Return1 и Return2 были отрицательными. Есть ли способ сделать это в рамках того же запроса?

select date,
count(sales)/count(sales) as All_Sales, 
count(return) filter where(type='wrong size')/count(sales) as Return1,
count(return) filter where(type='other preference')/count(sales) as Return2,
count(return) filter where(type not in ('wrong size', 'other preference')/count(sales) as Net_Sales
from sales
group by 1;

1 Ответ

0 голосов
/ 27 апреля 2020

Вам нужен только унарный оператор минус?

- count(return) filter (where type = 'wrong size') / count(sales) as Return1,
- count(return) filter (where type = 'other preference') / count(sales) as Return2,

Предполагая, что значения никогда не бывают отрицательными, вы можете найти это проще записать как:

- sum( (type = 'wrong size')::int ) as Return1,
- sum( (type = 'other preference')::int ) as Return2,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...