Mysql
 sql >> база данни >  >> RDS >> Mysql

Комбинирането на SUM(), GROUP_BY() и LEFT_JOIN() връща неправилни резултати:как да поправя?

GROUP BY групира резултатите , а не редовете на таблицата поотделно.

Въз основа на вашия коментар връщайте само редове в таблицата с часове, които не са свързани с някой от тези тагове :

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. SQL актуализира една колона от друга колона в друга таблица

  2. MySQL грешка 1452 (23000):Не може да се добави или актуализира дъщерен ред

  3. Подгответе MySQL израз с функция IN().

  4. Има ли конвенция за именуване за MySQL?

  5. MySQL Workbench не показва резултати от заявка