对于id,如果值曾经是false而不是总是false SQL

时间:2018-11-13 15:25:17

标签: sql teradata teradata-sql-assistant

我有一个数据集,在该数据集中我创建了一个基于某些条件的值,基于某些先验值我得到了True / False。现在,如果我的成员曾经是False,则他们需要有1条记录,这些记录始终是False。数据类似于下面的

ID| Indicator
1  | TRUE    
1   | TRUE   
2   | FALSE 
3   | TRUE   
3   | FALSE  

我希望它看起来像这样

ID  |  Indicator
1   |  TRUE
2   | FALSE
3   | FALSE

但是我不确定如何在Teradata中做到这一点

2 个答案:

答案 0 :(得分:2)

Teradata不支持布尔类型。因此,我将假定指示器为字符串。

在这种情况下,最简单的方法是min()

select id, min(indicator)
from t
group by id;

答案 1 :(得分:1)

根据示例数据,我会这样做:

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;