I have a large table of access logs to an application. I want is to find all rows that overlap startdate and enddate with any other rows. The query below seems to work, but does not finish unless I specify a single id. select distinct a1.id from t_access a1, t_access a2 where tstzrange(a1.startdate, a1.enddate) && tstzrange(a2.startdate, a2.enddate)