以下的不匹配是在表1計數上的時間差
BUYER_ID | ITEM_ID | CREATED_TIME
-----------+-------------------+------------------------
1345653 110909316904 2012-07-09 21:29:06
1345653 151851771618 2012-07-09 19:57:33
1345653 221065796761 2012-07-09 19:31:48
1345653 400307563710 2012-07-09 18:57:33
1345653 310411560125 2012-07-09 16:09:49
1345653 120945302103 2012-07-09 13:40:23
1345653 261060982989 2012-07-09 09:02:21
下面的數據是在表2
USER_ID | PRODUCT_ID | LAST_TIME
-----------+-------------------+----------------------
1345653 110909316904 2012-07-09 21:30:06
1345653 151851771618 2012-07-09 19:57:33
1345653 221065796761 2012-07-09 19:31:48
1345653 400307563710 2012-07-09 18:57:33
問題陳述的數據: -
我需要比較Table2
與Table1
上BUYER_ID
和USER_ID
。我需要找到匹配的計數,如果CREATED_TIME
和LAST_TIME
之間的差大於15 minutes
所以,如果你看一下上面的例子,看到第一排兩個表ITEM_ID
和PRODUCT_ID
是相同的,但CREATED_TIME
和LAST_TIME
是不一樣,而這兩次之間的差距只有1分鐘。所以如果差異大於15分鐘,那麼我想將它們顯示爲一個錯誤。因此,預期產量將以上病例
BUYER_ID ERROR
1345653 1
只是爲了保持完整性,其數據庫您使用的? SQL Server?甲骨文? MySQL的? Postgres的?還有別的嗎? – 2012-07-23 22:16:47
我在蜂房,蜂巢時,支持SQL的語法,但在這裏補充一點,我覺得作爲蜂房僅支持'平等JOINS',將是有用的'<= 15'將無法工作在JOIN條件,但在where子句我們可以添加這個'<= 15'。我知道如何處理Hive中的日期函數,我只是在尋找解決方案,以便我可以修改它以在Hive環境中工作。我認爲SQL Server語法在這裏可以正常工作。 – ferhan 2012-07-23 22:19:56
[你已經張貼了這個問題(http://stackoverflow.com/questions/11619008/rewrite-sql-query-to-accept-date-difference-condition-in-where-clause/)。請不要轉發。 – 2012-07-23 22:43:15