SQL Server-每个状态拉取X条随机记录

SQL Server-每个状态拉取X条随机记录,sql,sql-server,sql-server-2005,tsql,greatest-n-per-group,Sql,Sql Server,Sql Server 2005,Tsql,Greatest N Per Group,我有一个表格,上面有美国每个邮政编码的记录。为了在地图上显示,我需要为每个州选择X条随机记录。我该怎么做呢?使用: SELECT * FROM ZipCodes ORDER BY NEWID() 是的,我知道纽伊德。我的问题是如何提取每个州的随机记录。这很有效。下一个问题——如果有机会我需要将其移植到MySQL——是否有一种更普遍的兼容方式来形成查询?@Chris:不是这样——MySQL不支持分析/排名功能。 WITH sample AS ( SELECT t.*, ROW_

我有一个表格,上面有美国每个邮政编码的记录。为了在地图上显示,我需要为每个州选择X条随机记录。我该怎么做呢?

使用:

SELECT * FROM ZipCodes ORDER BY NEWID()

是的,我知道纽伊德。我的问题是如何提取每个州的随机记录。这很有效。下一个问题——如果有机会我需要将其移植到MySQL——是否有一种更普遍的兼容方式来形成查询?@Chris:不是这样——MySQL不支持分析/排名功能。
WITH sample AS (
 SELECT t.*,
        ROW_NUMBER() OVER (PARTITION BY t.state
                               ORDER BY NEWID()) AS rank
   FROM ZIPCODES t)
SELECT s.*
  FROM sample s
 WHERE s.rank <= 5