从表teradata条件的col x的min

时间:2017-05-18 10:08:55

标签: sql teradata

我想找到一个日期列的最小值,其中满足另一个条件

即表格:

ID     date  condition   ... 

1      3/15   0
1      4/15   1
5123   5/15   1
5123   7/15   1
5123   1/15   0 
2      2/15   0
2      1/15   1
2      1/15   1

我想在select语句中使用一行,而不过滤表的其余部分,以产生:

ID    date
1     4/15 
5123  5/15
2     1/15

我试过了:

min( date with condition = 1 )

min( date where condition = 1 )

case when   condition=1  then min(date) end  

但是出现语法错误。

2 个答案:

答案 0 :(得分:2)

" 我不想过滤表格的其余部分",使用case表达式进行条件聚合:

select id, min(case when condition = 1 then date end)
from tablename
group by id

答案 1 :(得分:0)

如果您想要最小日期,则需要使用GROUP BY

SELECT ID, MIN(Date) AS Date
FROM TableName
WHERE Condition = 1
GROUP BY ID