Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mendapatkan min max dan avg dari tabel di mysql dengan baris yang berbeda?

Jika Anda menginginkan nilai dalam satu baris, Anda dapat melakukan ini:

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

Jika Anda menginginkannya di baris terpisah, gunakan 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;

lihat SQL Fiddle dengan Demo

Edit #1, menggunakan data sampel Anda yang ditambahkan:

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

Lihat SQL Fiddle dengan 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. Bagaimana cara menyimpan informasi terenkripsi AES di database MySQL

  2. Menghitung jarak antara kode pos di PHP

  3. Bagaimana saya bisa mengubah beberapa tabel sekaligus di mysql?

  4. Query MySQL Untuk Mengambil Data Dengan Nama Kolom

  5. Emacs dan MySQL di Mac