Как отобразить две разные суммы одной и той же цены с разными параметрами? - PullRequest
2 голосов
/ 08 июля 2019

Мне нужно получить сумму 2 разных итогов.Один - это просто Итог, а второй - Итог, который включает в себя только те товары, которые продаются менее чем за $ 25.

SELECT SUM(Price) AS Total
FROM Sales (NOLOCK)

SELECT SUM(Price) AS TotalUnder
FROM Sales (NOLOCK)
WHERE Price < 25

Ожидаемый результат должен выглядеть следующим образом

| Итого |TotalUnder |

|20000 |1500 |

1 Ответ

2 голосов
/ 08 июля 2019

Использовать условное агрегирование:

SELECT SUM(Price) AS Total,
       SUM(CASE WHEN Price < 25 THEN Price ELSE 0 END) as TotalUnder
FROM Sales ;

Обратите внимание, что я удалил подсказку NOLOCK.Это имеет тенденцию быть чрезмерным и обычно не является необходимым.Используйте его, только если вы действительно понимаете, как SQL Server реализует блокировку, и знаете, что делает NOLOCK.

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