#sql #amazon-redshift
Вопрос:
У меня есть таблица, как показано ниже:
store city status
a new york t
b paris f
b london t
c lisbon f
Я хотел бы выбрать магазин, когда он имеет значение ТОЛЬКО «f». Если в магазине есть и «f», и «t», то это не считается. Желаемый Результат:
store status
c f
Это то, что я пробовал, но я все еще не получил желаемого результата:
SELECT store
FROM (
SELECT store, city,
CASE
WHEN status = 'f' THEN 1
WHEN status = 't' THEN -1
END AS status
FROM table) AS t
GROUP BY store
HAVING SUM(status) > 1
Любые предложения будут высоко оценены!
Ответ №1:
Вы можете использовать агрегацию и having
:
select store
from t
group by store
having min(status) = 'f' and max(status) = 'f';