Mysql
 sql >> Baza danych >  >> RDS >> Mysql

znajdź kolejną transakcję w ciągu 10 minut

Na podstawie formatu dat w tabeli musisz je przekonwertować za pomocą STR_TO_DATE aby użyć ich w zapytaniu. Jeśli Twoja kolumna jest właściwie datetime wpisz, a to jest tylko kod wyświetlania wyświetlający ten format, po prostu zastąp STR_TO_DATE(xxx, '%m/%d/%Y %k:%i') w tym zapytaniu z xxx .

Sposobem na znalezienie zamówień w odstępie 10 minut od siebie jest samodzielne dołączenie do stołu na user_id , order_id a czas drugiego zamówienia przypada w czasie pierwszego zamówienia i 10 minut później:

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

Wyjście:

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 na 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. Instalator MySql Workbench wymaga zainstalowania pakietu redystrybucyjnego Visual C++ 2015, ale jest już zainstalowany

  2. Kopie zapasowe administratora MySQL:tryb zgodności, co dokładnie to robi?

  3. Tylko jeden klucz ze złożonego klucza podstawowego jako klucz obcy

  4. Ostrzeżenie wywołane przez wstawienie 4-bajtowego kodu Unicode do mysql

  5. NA ZDUPLIKOWANY KLUCZ + AUTO INCREMENT problem mysql