通过标准sql从1亿条记录中选择1000个不同的名称

why*_*heq 4 sql sql-server standards ansi-sql

我有一个tb_FirstName有一个字段的表FirstName.该表有1亿个非空记录,有很多重复,例如约翰出现200万次.独特的数量FirstName超过200万.

如何使用标准 sql 尽快选择1000个不同的名称?

我目前正在使用以下内容,但这是

  • TSQL
  • 也许效率不高.

    SELECT x.FirstName
    FROM (
        SELECT  FirstName,
                rnk = RANK() OVER (ORDER BY Firstname)
        FROM    WHData.dbo.tb_DimUserAccount A
        GROUP BY FirstName
        ) x
    WHERE rnk <=1000
    
    Run Code Online (Sandbox Code Playgroud)

sge*_*des 8

好像你可以使用TOP 1000DISTINCT:

SELECT DISINCT TOP 1000 FirstName
FROM WHData.dbo.tb_DimUserAccount
ORDER BY FirstName
Run Code Online (Sandbox Code Playgroud)

简明的SQL小提琴演示