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

Wykonanie następującego zapytania trwa zbyt długo. Jak to zoptymalizować

Myślę, że możesz użyć

zamiast DOŁĄCZ.

SELECT m.year, COUNT(m.id) FROM movies m 
where 
exists (select * from roles r where r.movie_id=m.id and 
exists(select * from actors a where a.id=r.actor_id and a.gender='F'))
group by  m.year;

Aby wyświetlić całkowitą liczbę filmów rocznie wraz z powyższymi danymi wyjściowymi.

select t1.year,t1.count,t2.total from 
(
SELECT m.year as year, COUNT(m.id) as count FROM movies m 
where exists (select * from roles r where r.movie_id=m.id and exists(select * from actors a where a.id=r.actor_id and a.gender='F'))
group by  m.year
)t1 
join
(select year,count(m.id) as total from movies m group by m.year) t2
on t1.year=t2.year;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. django.core.exceptions.ImproperlyConfigured:Błąd podczas ładowania modułu MySQLdb:Brak modułu o nazwie MySQLdb

  2. Czy można zdefiniować kolumnę sygnatury czasowej, która nie ma wartości null i nie ma wartości domyślnej ani specjalnego zachowania podczas aktualizacji?

  3. dlaczego to daje mi zły numer klienta?

  4. złożone zapytanie SQL, wiele do wielu

  5. Wizualne tworzenie baz danych za pomocą MySQL Workbench