sql >> Databáze >  >> RDS >> Mysql

Složitý COUNT dotaz v MySQL

Návrh X-Zero přidat k datům „kredit pro nahrávání“ je nejlepší způsob, jak udržet dotaz jednoduchý. Pokud to není možné, proveďte vnitřní spojení mezi userprofile_videoinfo a userprofile_videocredit, abyste snadno odstranili duplicity:

SELECT u.id, u.full_name, COUNT(DISTINCT v.video_id) as credit_count
FROM userprofile_userprofile u
LEFT JOIN (SELECT vi.video_id, vi.uploaded_by_id, vc.profile_id as credited_to_id
    FROM userprofile_videoinfo vi
    JOIN userprofile_videocredit vc ON vi.id = vc.video_id
    ) v ON u.id = v.uploaded_by_id OR u.id = v.credited_to_id
GROUP BY u.id, u.full_name
ORDER BY credit_count DESC

Poddotaz může být užitečné vytvořit jako pohled.



  1. ImportError:Žádný modul s názvem flask.ext.mysql

  2. Jak volat proceduru v kohana 3.1

  3. Jak změnit řazení databáze, tabulky, sloupce?

  4. Emulátor vs úložiště na SD kartě zařízení Samsung