У меня есть структура запроса, как показано ниже, мне интересно, есть ли способ записать запросы select как один, используя операторы CASE или каким-либо другим способом, чтобы значения были вставлены в соответствующие переменные на основе их значений.
DECLARE passes INT;
DECLARE fails INT;
..
SELECT count(score)
INTO passes
FROM scores
WHERE score >= 40;
SELECT count(score)
INTO fails
FROM scores
WHERE score < 40;
Мердок придумал аккуратное решение этой проблемы, мне просто нужно было внести одно изменение, чтобы поместить каждое из значений в соответствующие переменные
SELECT *
INTO passes, fails
FROM (SELECT SUM(CASE
WHEN score >= 40 THEN 1
ELSE 0
END) AS _passes,
SUM(CASE
WHEN score < 40 THEN 1
ELSE 0
END) AS _fails
FROM scores) AS x;