获取在两个特定日期创建txns的用户

时间:2016-09-02 05:56:23

标签: sql postgresql

我有一个名为txns的表,它有属性txn_dt,user_id,txn_amt。我需要所有在2016年8月15日和2016年8月30日两个日期生成txns的用户。

有没有办法通过只访问一次来从表中获取所有用户?请与您分享您的意见。我知道INTERSECT和INNER JOIN会起作用,但我需要两次访问该表。我只能通过访问一次表来解决这个问题吗?非常感谢你。

2 个答案:

答案 0 :(得分:2)

试试这个:

SELECT user_id 
FROM txns
WHERE txn_dt IN ('2016-08-15'::date, '2016-08-30'::date)
GROUP BY user_id
HAVING COUNT(*) = 2

答案 1 :(得分:0)

试试这个:

select t.*
from txns t
where (select 1 from txns t1 where t1.user_id = t.user_id 
and t1.txn_dt::date = '2016-08-15'::date limit 1) is not null
and (select 1 from txns t2 where t2.user_id = t.user_id 
and t2.txn_dt::date = '2016-08-30'::date limit 1) is not null;