对于一个 id,如果一个值永远是假的,那么它总是假的 SQL
For an id if a value is ever false than it's always false SQL
我有一个数据集,我在其中创建了一个基于某些标准的值,我根据一些先验值得到 True/False。现在,如果我的成员曾经是假的,他们需要有 1 条他们总是假的记录。数据类似如下
ID| Indicator
1 | TRUE
1 | TRUE
2 | FALSE
3 | TRUE
3 | FALSE
我希望它看起来像这样
ID | Indicator
1 | TRUE
2 | FALSE
3 | FALSE
但我不确定如何在 Teradata 中执行此操作
Teradata 不支持布尔类型。所以,我假设指标是一个字符串。
在那种情况下,最简单的方法是min()
:
select id, min(indicator)
from t
group by id;
根据示例数据,我会这样做:
SELECT DISTINCT t.id,
(CASE WHEN EXISTS (SELECT 1
FROM table t1
WHERE t1.id = t.id AND t1.Indicator = 'False'
)
THEN 'False'
ELSE 'TRUE'
END) AS Indicator
FROM table t;
我有一个数据集,我在其中创建了一个基于某些标准的值,我根据一些先验值得到 True/False。现在,如果我的成员曾经是假的,他们需要有 1 条他们总是假的记录。数据类似如下
ID| Indicator
1 | TRUE
1 | TRUE
2 | FALSE
3 | TRUE
3 | FALSE
我希望它看起来像这样
ID | Indicator
1 | TRUE
2 | FALSE
3 | FALSE
但我不确定如何在 Teradata 中执行此操作
Teradata 不支持布尔类型。所以,我假设指标是一个字符串。
在那种情况下,最简单的方法是min()
:
select id, min(indicator)
from t
group by id;
根据示例数据,我会这样做:
SELECT DISTINCT t.id,
(CASE WHEN EXISTS (SELECT 1
FROM table t1
WHERE t1.id = t.id AND t1.Indicator = 'False'
)
THEN 'False'
ELSE 'TRUE'
END) AS Indicator
FROM table t;