Postgres Aggragator, который проверяет наличие
Существует ли агрегатор Postgres такой, что при использовании в следующей таблице:
id | value
----+-----------
1 | 1
2 | 1
3 | 2
4 | 2
5 | 3
6 | 3
7 | 3
8 | 4
9 | 4
10 | 5
в запросе, таком как:
select agg_function(4,value) from mytable where id>5
вернусь
agg_function
--------------
t
(логический истинный результат), потому что строка или строки со значением =4 были выбраны?
Другими словами, один аргумент указывает искомое значение, другой аргумент принимает спецификатор столбца, и он возвращает true, если значение столбца было равно указанному значению для одной или нескольких строк?
Я успешно создал агрегат, чтобы сделать это, но мне интересно, если я только что заново создал колесо...
1 ответ
Решение
select sum(case when value = 4 then 1 else 0 end) > 0
from mytable
where id > 5