sql >> Database >  >> RDS >> Mysql

Is het mogelijk om de query te optimaliseren met behulp van de EXISTS in plaats van de IN-clausule met DISTINCT

Probeer deze versie:

select contract_no AS c_no, cm_mac AS c_mc, min(tstamp) as time2, count(*) as aps
from devices d
where exists (select 1
              from devices d2
              where d2.contract_no = d.contract_no and
                    tstamp >= '2018-10-28 06:59:59' and
                    tstamp <= '2018-10-29 07:00:00'
              )
group by contract_no, cm_mac;

U wilt een index op devices(contract-no, tstamp) .




  1. Voorwaardelijke logica in PostDeployment.sql-script met SQLCMD

  2. Hoe werken vensterfuncties en de group by-clausule op elkaar in?

  3. Hoe combineer ik de resultaten van twee zoekopdrachten met bestellen?

  4. Is het mogelijk om een ​​door de gebruiker gedefinieerd tabeltype te gebruiken binnen een ander door de gebruiker gedefinieerd tabeltype in sql