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

temukan transaksi berurutan dalam 10 menit

Berdasarkan format tanggal dalam tabel, Anda perlu mengonversinya menggunakan STR_TO_DATE untuk menggunakannya dalam kueri. Jika kolom Anda adalah sebenarnya datetime ketik, dan itu hanya kode tampilan Anda yang mengeluarkan format itu, cukup ganti STR_TO_DATE(xxx, '%m/%d/%Y %k:%i') dalam kueri ini dengan xxx .

Cara menemukan pesanan dalam waktu 10 menit satu sama lain adalah dengan bergabung sendiri di meja Anda di user_id , order_id dan waktu pada pesanan kedua adalah dalam waktu pesanan pertama dan 10 menit kemudian:

SELECT t1.user_id, t1.create_time AS order1_time, t2.create_time AS order2_time
FROM transactions t1
JOIN transactions t2 ON t2.user_id = t1.user_id
                    AND t2.order_id != t1.order_id
                    AND STR_TO_DATE(t2.create_time, '%m/%d/%Y %k:%i') BETWEEN
                           STR_TO_DATE(t1.create_time, '%m/%d/%Y %k:%i') 
                       AND STR_TO_DATE(t1.create_time, '%m/%d/%Y %k:%i') + INTERVAL 10 MINUTE

Keluaran:

user_id     order1_time     order2_time
101         4/2/2018 8:34   4/2/2018 8:37
103         4/2/2018 9:32   4/2/2018 9:36
106         4/2/2018 13:11  4/2/2018 13:18

Demo di dbfiddle



  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 mengekstrak array json sebagai tabel dari kolom teks mysql ketika jumlah objek json dalam array tidak diketahui?

  2. Cara memasukkan objek (lebih dari 10 properti) ke mysql melalui mybatis berdasarkan anotasi tanpa mencantumkan semua properti

  3. MySqlConnection.StateChange tidak pernah Mengambil

  4. MySqlDb melempar Operan harus berisi 1 kolom pada pernyataan abaikan insert

  5. Bagaimana cara menggunakan group by dengan tiga kolom data?