Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy można zoptymalizować zapytanie za pomocą klauzuli EXISTS zamiast IN z DISTINCT?

Wypróbuj tę wersję:

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;

Potrzebujesz indeksu na devices(contract-no, tstamp) .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zamień ciąg znaków MySQL

  2. Używanie zmiennych php w instrukcji insert MySQL

  3. LibreOffice:nie można załadować „com.mysql.jdbc.driver”

  4. Jak znaleźć liczbę dni między dwiema datami w MySQL?

  5. Jak mogę policzyć liczbę wierszy zwróconych przez zapytanie MySQL?