sql >> Database teknologi >  >> RDS >> Mysql

Er det muligt at optimere forespørgslen ved at bruge EXISTS i stedet for IN-klausulen med DISTINCT

Prøv denne version:

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;

Du vil have et indeks på devices(contract-no, tstamp) .




  1. Valg af PHP/MySQL Opdater afkrydsningsfelt til database

  2. Hvordan opretter man PHP to kolonne tabel med værdier fra databasen?

  3. At finde den laveste værdi i en tabel større end en bestemt værdi

  4. Indsæt/opdater hjælpefunktion ved hjælp af PDO