2017-05-30 72 views
-1

所以我搜索了一個答案,但我無法找到一個這個難題我在。我有一個查詢,將成功拉回X量的隨機帳戶或獨特賬戶。但是,我想將這兩者結合到一個SQL查詢中,而不是兩個。因此,我會將交易數據從特定時間範圍撤回到我需要撤消沒有重複賬戶的交易數據,然後從這些非重複賬戶中,從該列表中選擇X個隨機賬戶。SQL查詢刪除重複項和提取隨機結果

目前,這是查詢我:我試圖在那裏把DISTINCT

SELECT TOP 75 [Account] 
FROM table 
ORDER BY NEWid() 

,但我找不到把它放在正確的地方。

現在,是的,我知道我可以在Excel中做到這一切。但是,爲了實現自動化和加速流程,我希望通過SQL來實現這一點。

+0

這是如何隨機? – Hogan

+0

你說得對。我沒有忘記一行代碼。這將是newid()的順序。感謝您指出了這一點。 OP編輯。 –

+0

您正在使用哪些DBMS? –

回答

0

你不說你正在使用,除了TOP X什麼平臺是MSSQL

我猜你想要這個

SELECT TOP 25 * 
FROM (
    SELECT DISTINCT [Account] 
    FROM table 
) x 

不過,我不認爲任何平臺返回結果當你使用DISTINCT時,按照隨機的順序 - 考慮一下......你必須進行排序才能使它與衆不同。

所以,你可以把它隨機順序...

SELECT TOP 25 * 
FROM (
    SELECT DISTINCT [Account] 
    FROM table 
) x 
ORDER BY newid() 

然而,這將是緩慢的 - 如果它只是你不關心的順序,那麼請不要使用該隨機化招。

+0

謝謝你的回答。我不關心訂單,不。這對我來說並不重要。 但是,我已經試過你的上面的代碼,它確實工作(我非常高興)。我只是彈出一個小小問題,我不知道爲什麼。以下是目前的代碼: SELECT TOP 75 [帳戶] FROM( SELECT DISTINCT [帳戶] FROM表 其中TransDate> = '2017年5月1日')由NEWID() 在X 順序問題發生在「where」聲明中。我需要根據特定日期範圍隔離正在撤回的數據。對此有何建議?再次感謝。 –

+0

好吧,看起來問題是我添加了一個額外的括號。它現在正常運行。感謝你的回答。 :) –

+0

@RyanWakefield - 不客氣 - 祝你好運。 – Hogan