sql >> Database >  >> RDS >> Mysql

Een meervoudige telling van meerdere tabellen optellen?

Hier is de SQL Fiddle waaruit blijkt dat de onderstaande query inderdaad werkt. Zoals je kunt zien, maak ik de tabellen en vul ik ze met de gegevens die je in je vraag hebt. Vervolgens voer ik de onderstaande query uit om de gegevens te verzamelen die u nodig hebt. Ik heb de tellingen geverifieerd en ze berekenen correct.

SELECT PM.*, 
  (
    PM.SongCount + PM.LessonCount + 
    PM.SongCommCount + PM.LessonCommCount
  ) AS TotalCount 
FROM (
  SELECT P.poster_id, 
    (
      SELECT COUNT(poster_id) 
      FROM song S 
      WHERE P.poster_id = S.poster_id
    ) AS SongCount, 
    (
      SELECT COUNT(poster_id) 
      FROM lesson L 
      WHERE P.poster_id = L.poster_id
    ) AS LessonCount, 
    (
      SELECT COUNT(poster_id) 
      FROM SongComment SC 
      WHERE P.poster_id = SC.poster_id
    ) AS SongCommCount, 
    (
      SELECT COUNT(poster_id) 
      FROM LessonComment LC 
      WHERE P.poster_id = LC.poster_id
    ) AS LessonCommCount 
  FROM poster AS P 
  LIMIT 0, 50
) AS PM
ORDER BY 
  (
    PM.SongCount + PM.LessonCount + 
    PM.SongCommCount + PM.LessonCommCount
  ) DESC


  1. Hoe te SELECTEREN over twee tabellen?

  2. DataFrame laden van Panda's naar SQL voor ORACLE-opbrengsten en ERROR - ORA-00911:ongeldig teken

  3. Oracle 2 koppeltekens in cijferkolom?

  4. mysql datums selecteren zonder tabellen