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

Имам проблем, когато използвам ляво присъединяване и групиране по едновременно. Имам няколко реда с данни с един и същ user_id, така че искам да използвам group by

Трябва да групирате и по брояч.

  create table call_log (
  user_id int(10), 
  duration int(10)      );

  insert into call_log values ( 5019,12),
                              ( 2345,23),
                              ( 5019,14);

  create table job_timetable  (
              user_id int(10), 
               counter int(10) );

  insert into job_timetable values ( 5019,1),
                                   ( 5019,3),
                                   ( 2345,2);


  SELECT call_log.user_id,SUM(call_log.duration) as duration,
                    avg(call_log.duration) as average_duration,
                                                    countersum
    FROM call_log 
    LEFT JOIN ( SELECT user_id,sum(counter) as countersum FROM job_timetable 
    GROUP BY user_id )  b   on call_log.user_id= b.user_id
    where call_log.user_id is not null 
    group by call_log.user_id,countersum 
    order by  call_log.user_id asc;

Демо:https://www.db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/77



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да направя брояч на php статии?

  2. Изваждане в sql израз

  3. Запазване на данни от таблицата, получени при изстъргване на уеб страница с помощта на casperjs

  4. Дизайн на база данни:обекти с различни атрибути

  5. Изграждане на динамична заявка за PDO