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

Połączenie SUM(), GROUP_BY() i LEFT_JOIN() zwraca nieprawidłowe wyniki:jak to naprawić?

GROUP BY grupuje wyniki , a nie poszczególne wiersze tabeli.

Na podstawie Twojego komentarza zwróć tylko te wiersze w tabeli czasu, które nie są połączone z żadnym z tych tagów :

SELECT 
    date_format(from_unixtime(date), '%Y-%m-%d') as myDate,
    ROUND(SUM(time) / 60,1) as hours
FROM `time` h
  LEFT JOIN (
    SELECT DISTINCT te.entity_id
    FROM tag_entity te
      LEFT JOIN tags t on t.tag_id = te.tag_id
    WHERE te.entity_id IS NOT NULL AND t.tag_name IN ('foo', 'bar', 'baz')
  ) g ON h.entity_id = g.entity_id
WHERE g.entity_id IS NULL
group by
    myDate

order by
    hours DESC, myDate ASC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaktualizować kolumnę MySQL na podstawie pola wyboru?

  2. Laravel 5.1 - Zamówienie według dwóch kolumn nie działa zgodnie z przeznaczeniem

  3. Jak utworzyć dwie kolumny z automatycznym przyrostem w MySQL?

  4. PHP Select z PDO Wywołaj funkcję członkowską read() w przypadku błędu nieobiektowego

  5. Laravel 4 Query Builder - groupBy Max Date