Это связано с вопросом, заданным ранее на Effective way in PRESTO to Result output with boolen values
. Пожалуйста, обратитесь к вопросу для получения более подробной информации.
В ответ на вопрос доступны два решения.
SELECT dp.USER_NAME,
dp.ID,
CASE
WHEN dp.sex='F' THEN 'True'
ELSE 'False'
END AS Rule_1,
CASE
WHEN dp.sex='M' THEN 'True'
ELSE 'False'
END AS Rule_2,
CASE
WHEN dp.sex not in ('M','F') THEN 'True'
ELSE 'False'
END AS Rule_3
FROM user_details dp where dp.Organisation='007';
SELECT dp.USER_NAME, dp.ID,
(dp.sex = 'F') AS Rule_1,
(dp.sex = 'M') AS Rule_2,
(dp.sex not in ('M','F')) AS Rule_3
FROM user_details dp
WHERE dp.Organisation = '007';
Вопросы:
С CASE я не могу использовать COUNT
, как я могу добавить правило, если я хочу, чтобы COUNT было больше 2. (Count (*)> 0) = True else False с JOIN Tables to the selected Query?
Есть ли способ для пользователя COUNT
на всякий случай?
Что я пытаюсь создать:
SELECT dp.USER_NAME, dp. ID,
(dp.sex = 'F') AS Rule_1,
(dp.sex = 'M') AS Rule_2,
(dp.sex not in ('M','F')) AS Rule_3,
(dp.DateOfBirth NOT BETWEEN timestamp '1986-04-01' AND timestamp '2001-03-31') AS Rule_4,
(count(up.*)>10) AS Rule_5,
FROM user_details dp
JOIN user_purchase up on up.user_id=dp.id
where dp.Organisation='007';
В приведенном выше запросе я пытаюсь опубликовать логическое значение, если user_purchase
последние данные таблицы> 10, то конкретное выходное значение строки должно быть True
иначе False
.
USER_NAME | ID | Rule 1 | Rule 2 | Rule 3 | Rule 4 | Rule 5
user1 1 true false true true true
user2 2 false true true true true
user3 3 true true true true false