Можно ли добавить два суммированных значения в mysql, как показано в запросе, показанном ниже (рисунок 1)?
У меня есть запрос ниже, и я пытаюсь добавить qty и pro.
Рисунок 1
SELECT
SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END) AS qty,
SUM(CASE WHEN value > 1 AND xp = 2 THEN 1 ELSE 0 END) AS pro
SUM(pro + qty)
FROM OrderDetails;
Мне нужно будет использовать qty и pro много раз в запросе, поэтому я не хочу писать запрос, как показано на рисунок 2
рисунок 2
SELECT
SUM(
SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END)
+
SUM(CASE WHEN value > 1 AND xp = 2 THEN 1 ELSE 0 END)
)
FROM OrderDetails;
EDITED
Что я имею в виду, используя кол-во и pro несколько раз в запросе, что-то вроде следующего.
Пример запроса - это то, что я пытаюсь сделать, где я могу многократно использовать qty и pro в запросе в таких местах, как sum(pro + qty)
и having (qty > 0 AND pro > 0)
, без необходимости переписывать вся сумма заявления.
SELECT
SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END) AS qty,
SUM(CASE WHEN value > 1 AND xp = 2 THEN 1 ELSE 0 END) AS pro
SUM((pro + qty)/100)
FROM OrderDetails
GROUP BY value
HAVING (
qty > 2
AND
pro > 2
)
;
пример запроса 2 - это то, что я должен сделать в настоящее время, и кажется очень плохой практикой - переписывать SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END)
несколько раз, а не просто кол-во или pro как в запросе выше
SELECT
SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END) AS qty,
SUM(CASE WHEN value > 1 AND xp = 2 THEN 1 ELSE 0 END) AS pro
SUM((
SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END)
+
SUM(CASE WHEN value > 1 AND xp = 2 THEN 1 ELSE 0 END)
)/100)
FROM OrderDetails
GROUP BY value
HAVING (
SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END) > 2
AND
SUM(CASE WHEN value > 1 AND xp = 2 THEN 1 ELSE 0 END) > 2
)
;
нет способа добавить SUM(pro + qty)
после его однократного определения в примерах типа SUM(CASE WHEN value > 0 AND xp = 0 THEN 1 ELSE 0 END) AS qty