查询具有多个状态条件的 ID

Querying id's that have multiple status conditions

我在Impala中有以下数据:

ID STATUS Date
1 a date1
1 b date2
1 c date3
2 a date4
2 c date5
3 a date6
3 b date7
3 c date8
3 x date9

我想构造一个查询,仅当 ID 具有状态(A 或 B 或 C)和状态 X 时才 return 查询 ID。我还想 return 日期对于状态 X。我想不出一个好的方法来做到这一点。我是否需要加入两个具有不同状态条件的子查询?

这应该有效..

    select distinct id, date
    from t1
    where status = 'x'
    and id in 
      (select id
       from t1
       where status in ('a','b','c')
       )

db-fiddle 这里:https://www.db-fiddle.com/f/uHVNeriETsXkLPV5kiSC1z/0