我正在处理一张桌子,就像这样:
Name | Status | Date |
---|---|---|
Alfred | 1 | Jan 1 2023 |
Alfred | 2 | Jan 2 2023 |
Alfred | 3 | Jan 2 2023 |
Alfred | 4 | Jan 3 2023 |
Bob | 1 | Jan 1 2023 |
Bob | 3 | Jan 2 2023 |
Carl | 1 | Jan 5 2023 |
Dan | 1 | Jan 8 2023 |
Dan | 2 | Jan 9 2023 |
我正在try 设置一个查询,以便可以处理以下内容: 我想要每个名字的最新状态,
SELECT MAX(Date), Status, Name
FROM test_table
GROUP BY Status, Name
此外,我希望在相同的查询中,如果用户的状态为ever且状态为2,则能够拉入,而不管最近的状态是否为2
WITH has_2_table AS (
SELECT DISTINCT Name, TRUE as has_2
FROM test_table
WHERE Status = 2 )
然后可能会在名字上加入上面的左连接?
但是,将这些作为两个单独的查询并将它们连接在一起对我来说感觉很笨拙,特别是因为我想添加额外的列和其他判断.有没有更好的方法在一个单一的查询中设置它,或者这是最有效的方法?