SQL查询删除重复项&随机抽取结果

时间:2017-05-30 17:18:58

标签: sql duplicates distinct

所以我一直在寻找答案,但我无法找到一个我所处的难题。我有一个查询,可以成功撤回X金额的随机帐户或不同的帐户。但是,我想将这两者结合到一个SQL查询中,而不是两个。因此,我将把特定时间范围内的交易数据拉回到我需要撤回没有重复帐户的地方,然后从那些非重复帐户中提取,从该列表中选择X随机帐户。

目前,这是我的查询:

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

我已尝试将DISTINCT放在那里,但我找不到合适的位置。

现在,是的,我知道我可以在excel中完成所有这些工作。但是,为了自动化和加快这个过程,我想通过SQL实现这一目标。

1 个答案:

答案 0 :(得分: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()

然而,这将是缓慢的 - 如果只是你不关心订单,那么不要使用这种随机技巧。