2017-03-16 61 views
-1

我想编写一个查询来分组我的两列基于第三列,并在SQLite中显示结果如下所示CAn任何人指导我如何写这样的结构查询 表结构SQLite查询分组列

CREATE TABLE `Table1` (
`Variable_col` TEXT, 
`TimeComes_Col` datetime, 
`TimeGoes_Col` datetime) 

虚拟数据

Insert Into Table1 Values('var1','2017-03-16 10:00:00',''),('var1','','2017-03-16 10:05:00'),('var1','2017-03-16 10:10:00',''),('var2','2017-03-16 10:15:00','') 

到目前为止已经试过,但没有得到结果通缉

WITH RECURSIVE cte1 as(select Variable_Col,TimeComes_Col, (SELECT COUNT()+1 FROM (SELECT DISTINCT TimeComes_Col FROM Table1 AS t WHERE TimeComes_Col < Table1.TimeComes_Col)) as rn from Table1 where TimeComes_Col <> ''), 

CTE2如(1 FROM选择TimeGoes_Col,(SELECT COUNT()+(SELECT DISTINCT TimeGoes_Col FROM表1 AS T其中TimeGoes_Col < Table1.TimeGoes_Col) ),如从表1 Rn其中TimeGoes_Col <> '')选择Variable_Col,TimeComes_Col,从CTE1左TimeGoes_Col加入CTE2 b关于a.rn = b.rn

enter image description here

回答

0

如果这些总是在5分钟

SELECT t1.variable_col, t1.timecomes_col, t2.timegoes_col 
FROM Table1 t1 
LEFT OUTER JOIN Table1 t2 ON 
    t1.variable_col = t2.variable_col 
    AND t1.timecomes_col < t2.timegoes_col AND 
    t2.timegoes_col < DATETIME(t1.timecomes_col, '+6 minutes') 

增量未来通过这可能是有益的补充索姆e此数据和其他更传统的SQL将无法满足您的需求的示例数据。我假设你正在考虑使用窗口函数来解决这个问题,但考虑到你的示例数据似乎并不需要它们。

+0

不,它会以随机时间间隔发生 –