2009-08-14 6 views
0

2 tableaux avec le modèle ci-dessous:différence SQL-temps

Id: long unique; timestamp:long; price:double 

Les données dans les deux tables sont identiques, sauf horodatage. L'horodatage est donné sous la forme unix_time dans ms. Question: combien de paires ont une différence de temps plus grande que 1000ms?

+0

En général, vous devez mentionner le dialecte SQL que vous utilisez dans votre question. – Thorarin

+0

@Thorain, D'accord. – Siv

Répondre

1

Essayez ceci:

SELECT COUNT(*) 
FROM Table1 t1 INNER JOIN Table2 t2 ON t1.id = t2.id 
WHERE 
    (t1.timestamp - t2.timestamp > 1000) or 
    (t2.timestamp - t1.timestamp > 1000) 
+0

@Rax, J'ai essayé votre requête. Il montre les résultats souhaités. Merci beaucoup ! – Siv

0

en supposant que les ID sont identiques pour les deux tables et horodatage est le seul champ différent

assument ce sont vos tables

ID | timestamp | price 

nous les appellerons table1 et table2

select count(*) from table1 t1 
inner join table2 t2 on t1.ID=t2.ID 
where (t1.timestamp-t2.timestamp) > 1000 
or (t2.timestamp-t1.timestamp)>1000 
+0

@Saeros, j'ai essayé votre requête, mais je ne nécessite pas de groupe par. J'ai juste besoin du compte seulement et cette colonne Id a un droit unique .. merci pour votre réponse! – Siv