数据库是postgresql。表table分别有A,B,C,D几个区间的条件数据,
1、求A-B的交集?
2、求A-C的交集,且不在B区间内的?
3、求A-D交集,且不在B-C内的?
当前使用查询语句: select a.name from (select distinct name from table where A) as a join (select distinct name from table where B) as b on a.name = b.name
数据量大约6000W左右,目前是使用子查询然后Join的方式查询。但是查询时间比较长,是否有其他更好的方案?
====实际业务=====
一张订单表,查询某个日期前30天或60天(一个周期)有订单的用户。
需求1、并且在30-60天(前一个周期)有订单
需求2、在30-60天(前一个周期)无订单,在60-90有订单(前2个周期)