HI имеет 3 таблицы продуктов, в каждой из которых 3 столбца, а именно имя клиента, логическое отключение и черный список. После предложения Имеется 3 строки для каждого имени клиента (при условии, что у него есть все 3 продукта).
Как вывести истину, если какой-либо из логических столбцов содержит истину. Я понял, используя приведенную ниже операцию приведения, но думаю, что должно быть более элегантное решение.
SELECT customer_name,
cast(int4(sum(cast(optout As int4))) As Boolean) As optout,
cast(int4(sum(cast(blacklist As int4))) As Boolean) As blacklist
FROM
(SELECT * FROM product1
UNION SELECT * FROM product2
UNION SELECT * FROM product3) AS temp1
GROUP BY customer_name, optout, blacklist
HAVING optout=true or blacklist=true;