Mencoba menemukan cara untuk menghitung baris bersama tanpa mengelompokkannya. Karena jika saya mengelompokkan per jam seperti jam (tanggal) maka itu hanya mengecilkan hasilnya. Alih-alih, saya ingin menghitung baris dan menambahkan baris apa pun ke hitungan itu yang berada dalam satu jam terakhir dari baris itu.

Data:

date
-------------------
2017-11-01 03:43:00
2017-11-01 03:45:00
2017-11-04 14:14:00
2017-11-04 15:01:00
2017-11-04 15:08:00
2017-11-04 15:12:00
2017-11-04 15:16:00

Hasil:

date                    count
-------------------     -------------------
2017-11-01 03:43:00     1
2017-11-01 03:45:00     2
2017-11-04 14:14:00     1
2017-11-04 15:01:00     2
2017-11-04 15:08:00     3
2017-11-04 15:12:00     4
2017-11-04 15:16:00     3
0
Sara 17 November 2017, 07:25

1 menjawab

Jawaban Terbaik

Untuk ini, Anda dapat menggunakan "subquery berkorelasi"

select
   `date` 
  , (select count(*) from yourtable t2
     where t2.`date`>= date_sub(t1.`date - INTERVAL 1 HOUR) and t2.`date` <= t1.`date`
    ) as `count`
from yourtable t1

Perhatikan, jika Anda ingin secara ketat menghitung baris "di masa lalu" gunakan less than, bukan less than or equal dalam kueri.

0
Paul Maxwell 17 November 2017, 05:44