Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để lấy tối đa tối thiểu và trung bình từ bảng trong mysql với các hàng khác nhau?

Nếu bạn muốn các giá trị trong một hàng duy nhất, bạn có thể thực hiện điều này:

select max(playtime), min(playtime), avg(playtime)
from yourtable
group by mediaid;

Nếu bạn muốn chúng ở các hàng riêng biệt, hãy sử dụng UNION ALL :

select max(playtime) playtime, mediaid, 'Max' Type
from yourtable
group by mediaid
union all
select min(playtime) playtime, mediaid, 'Min'
from yourtable
group by mediaid
union all
select avg(playtime) playtime, mediaid, 'Avg'
from yourtable
group by mediaid
order by mediaid, playtime;

xem SQL Fiddle với Demo

Chỉnh sửa số 1, sử dụng dữ liệu mẫu của bạn đã thêm:

select m.medTitle, 
  min(TIMESTAMPDIFF(SECOND, s.dmtViewStart, s.dmtViewEnd)) playtime
from tbldoctormediatracktest s
left join tblmedia m
  on s.MedId = m.MedId
group by m.medTitle
union all

select m.medTitle, 
  avg(TIMESTAMPDIFF(SECOND, s.dmtViewStart, s.dmtViewEnd)) playtime
from tbldoctormediatracktest s
left join tblmedia m
  on s.MedId = m.MedId
group by m.medTitle
union all

select m.medTitle, 
  max(TIMESTAMPDIFF(SECOND, s.dmtViewStart, s.dmtViewEnd)) playtime
from tbldoctormediatracktest s
left join tblmedia m
  on s.MedId = m.MedId
group by m.medTitle
order by medTitle,  playtime

Xem SQL Fiddle with Demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm trực tiếp bằng Codeigniter Mysql

  2. Câu lệnh chèn ngày trong MySQL được định dạng đúng sẽ trả về tất cả các số 0

  3. Sử dụng Cơ sở dữ liệu quan hệ MySQL trên Ubuntu 8.04 (Hardy)

  4. tìm kiếm vùng lân cận mã zip php / mysql

  5. Node.js và mysql Callback:truy vấn trong cuộc gọi lại truy vấn