下面是TestingTable1算錯配和失蹤
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
數據下面是TestingTable2
USER_ID | PRODUCT_ID | LAST_TIME
-----------+-------------------+-------------------
1345653 110909316904 2012-07-09 21:30:06
1345653 152851771618 2012-07-09 19:57:33
1345653 221065796761 2012-07-09 19:31:48
1345653 400307563710 2012-07-09 18:57:33
我需要BUYER_ID
和USER_ID
與TestingTable1
比較TestingTable2
數據。我需要從TestingTable1
比較TestingTable2
後找到所有(基本上是計數)丟失和不匹配的條目。我創建SQL搗鼓這個 -
http://sqlfiddle.com/#!3/d87b2/1
如果你運行我在SQL查詢撥弄,你會得到輸出原樣
BUYER_ID ERROR
1345653 5
這是對從TestingTable1
最後three
行丟失在TestingTable2
和其餘two
在BUYER_ID
和USER_ID
的TestingTable1
比較後不匹配。
現在複雜的事情開始了。
問題聲明 -
在我的電流輸出,我得到錯誤計數爲5
。所以如果你看到ITEM_ID
和PRODUCT_ID
這兩個表中的第一行是相同的,但是CREATED_TIME
和LAST_TIME
不相同,那兩次之間的差別僅僅是1 minute
。所以目前我報告說這是不匹配,但我需要的是,如果它們之間的差異在15 minutes range
之內,那麼我不想將其報告爲錯誤。因此,在我當前的查詢中實現此功能後,我將獲得錯誤計數爲4,因爲差異在第一行的15分鐘範圍內。
那麼如何在我當前的查詢中實現此功能?這是我的問題。
P.S-我正與Hive和Hive一起支持sql語法。所以我認爲任何修改都會在我當前的查詢中起作用。
感謝cravoori,是的它在SQL中工作。但是當我在HiveQL中嘗試同樣的事情時,它會在'mi'處拋出錯誤。我發現這個鏈接[http://www.folkstalk.com/2011/11/date-functions-in-hive.html](http://www.folkstalk.com/2011/11/date-functions-in -hive.html),其中我可以看到Hive中還有datediff函數。但是,我如何通過使用相同的函數修改相同的查詢以在Hive中工作。目前它報告的錯誤是'FAILED:語義分析錯誤:第10行:157無效表別名mi'。任何幫助將不勝感激。 – ferhan 2012-07-21 01:01:19
你能幫我一下嗎?我正在尋找替代方法來做與上面發佈的解決方案相同的事情,因爲它在SQL Server中工作正常,所以我需要其他方式來做同樣的事情,基本上是一種替代方法,我試着把where條款中的日期差異條件,但它沒有奏效。任何幫助將不勝感激。 – ferhan 2012-07-23 20:57:03