Я пытаюсь подсчитать сумму двух столбцов из подмножества результатов, пока я собрал это вместе
SELECT COUNT(*)
FROM table_name
WHERE column_1 + column_2 >= 3 IN (SELECT id
FROM table_name
where id = 16
AND (name = 'Richard')
ORDER BY column_3
DESC LIMIT 10);
В качестве вывода я ожидаю количество случаев, когда сумма равна >=3
, поэтому, например, 5
На данный момент я получаю ошибку
ERROR: operator does not exist: integer >= boolean
Я чувствую, что я на неправильном пути, хотя. Как я могу построить этот запрос, пожалуйста
Вы не указываете значение для оператора В, который возвращает логическое значение, указывающее, находится ли значение в результатах вашего оператора SELECT.
Самым простым изменением вашего запроса для его работы будет:
SELECT COUNT(*) FROM table_name
WHERE column_1 + column_2 >= 3
AND id IN(
SELECT id FROM table_name
WHERE id = 16 AND (name = 'Richard')
ORDER BY column_3 DESC LIMIT 10
);
Однако правильный подход в случае, если table_name фактически используется дважды, будет следующим:
SELECT COUNT(*) FROM table_name
WHERE id = 16 AND (name = 'Richard')
AND column_1 + column_2 >= 3
ORDER BY column_3 DESC LIMIT 10;
Спасибо, Матиас, очень помог, я тоже вижу, где я ошибся, хорошее объяснение