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

MySQL:Interval rata-rata antar record

Secara intuitif, apa yang Anda tanyakan harus setara dengan interval antara tanggal pertama dan terakhir, dibagi dengan jumlah tanggal dikurangi 1.

Biar saya jelaskan lebih teliti. Bayangkan tanggal adalah titik pada sebuah garis (+ apakah ada tanggal, - ada tanggal yang hilang, tanggal pertama adalah tanggal 12, dan saya mengubah tanggal terakhir menjadi tanggal 24 Desember untuk tujuan ilustrasi):

++----+---+-+

Sekarang, yang benar-benar ingin Anda lakukan adalah memberi jarak secara merata pada tanggal Anda di antara garis-garis ini, dan temukan berapa lama jarak antara setiap tanggal:

+--+--+--+--+

Untuk melakukannya, Anda cukup mengambil jumlah hari antara hari terakhir dan hari pertama, dalam hal ini 24 - 12 =12, dan membaginya dengan jumlah interval yang harus Anda beri spasi, dalam hal ini 4:12 / 4 = 3 .

Dengan kueri MySQL

SELECT DATEDIFF(MAX(dt), MIN(dt)) / (COUNT(dt) - 1) FROM a;

Ini berfungsi di tabel ini (dengan nilai Anda mengembalikan 2,75):

CREATE TABLE IF NOT EXISTS `a` (
  `dt` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `a` (`dt`) VALUES
('2010-12-12'),
('2010-12-13'),
('2010-12-18'),
('2010-12-22'),
('2010-12-24');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengimpor database Mysql menggunakan Ruby/Chef Recipe untuk Vagrant

  2. MySQL - Pilih tanggal terbaru dari beberapa kemungkinan cap waktu?

  3. Bagaimana cara menghapus item dari tabel secara rekursif?

  4. Bagaimana MySQL menangani sisipan bersamaan?

  5. Pilih Nilai Terkecil Dari Beberapa Kolom dengan PHP/MySQL