Com base no formato de suas datas na tabela, você precisará convertê-las usando
STR_TO_DATE
para usá-los em uma consulta. Se sua coluna é na verdade, um datetime
type, e esse é apenas o seu código de exibição que gera esse formato, basta substituir STR_TO_DATE(xxx, '%m/%d/%Y %k:%i')
nesta consulta com xxx
. A maneira de encontrar pedidos dentro de 10 minutos um do outro é se juntar à sua mesa em
user_id
, order_id
e a hora da segunda ordem estar dentro da hora da primeira ordem e 10 minutos depois: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
Saída:
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
Demonstração no dbfiddle