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

Catatan SQL Berturut-turut dengan hitungan

Anda dapat menggunakan variabel untuk melakukan ini.

select phone_number from (
select c.*,
@prev_outcome:[email protected]_outcome,
@cur_outcome:=system_outcome,
@prev_pnum:[email protected]_pnum,
@cur_pnum:=phone_number,
case when @cur_pnum = @prev_pnum and @prev_outcome <> @cur_outcome then @rn:[email protected]+1
     when @cur_pnum = @prev_pnum and @prev_outcome = @cur_outcome then @rn:[email protected]
else @rn:=1 end as rank
from calls c, 
(select @rn:=0,@prev_pnum:='',@cur_pnum:='',@prev_outcome:='',@cur_outcome:='') r
order by phone_number,dt
    ) x
where system_outcome='No Answer'
group by phone_number,rank
having count(*) > 6

Kueri ini menggunakan 4 variabel

1) @cur_outcome yang awalnya disetel ke string kosong. Setelah itu pilih menetapkan system_outcome baris saat ini.

2) @prev_outcome yang awalnya disetel ke string kosong. Setelah itu pilih menyetelnya ke @cur_outcome (yang merupakan string kosong untuk pertama kalinya dan seterusnya).

3) @cur_pnum yang awalnya disetel ke string kosong. Setelah itu pilih menetapkan nomor telepon baris saat ini.

4) @prev_pnum yang awalnya disetel ke string kosong. Setelah itu, pilih menyetelnya ke nilai @cur_pnum (yang awalnya merupakan string kosong).

order by klausa penting di sini untuk menunjuk baris saat ini dan sebelumnya berdasarkan nomor telepon dan tanggal.

Jalankan kueri dalam terlebih dahulu untuk melihat bagaimana variabel disetel, yang akan memperjelas banyak hal untuk Anda.

Sample Demo

Demo berisi beberapa data sampel lebih dari yang ditunjukkan dalam pertanyaan.



  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 menggunakan Django dengan tabel database readonly lama dengan kunci primer komposit?

  2. Array multi-dimensi php dari hasil mysql

  3. Database cadangan MySQL

  4. Dapatkan uuid yang dihasilkan setelah memasukkan php

  5. cara menghapus catatan dari database dengan Ajax