通过sql

时间:2017-05-24 14:12:29

标签: sql vertica

我有一个以下格式的表格

Name    ID  payment_date
A       1   31-Jan
C       3   31-Jan
B       2   31-Jan
C       3   28-Jan
D       4   29-Jan
B       2   30-Jan
A       1   25-Jan
C       3   26-Jan
D       4   2-Feb
B       2   3-Feb
A       1   4-Feb
B       3   5-Feb

我想查询Name和ID的每个组合的第一次出现。请帮我在sql中编写查询。

期望的输出

Name    ID  payment_date
A       1   25-Jan
B       2   30-Jan
B       3   5-Feb
C       3   26-Jan
D       4   29-Jan

2 个答案:

答案 0 :(得分:3)

您希望每个nameid的最短日期:

select name, id, min(payment_date)
from mytable
group by name, id
order by name, id;

答案 1 :(得分:1)

SELECT
    NAME, ID, MIN(PAYMENT_DATE)
FROM
    YOUR_TABLE
GROUP BY
    NAME, ID
ORDER BY
    NAME, ID;