2017-05-30 64 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