SQL Server - 每个状态拉 X 个随机记录
Posted
技术标签:
【中文标题】SQL Server - 每个状态拉 X 个随机记录【英文标题】:SQL Server - pull X random records per state 【发布时间】:2010-10-22 15:51:01 【问题描述】:我有一张记录美国每个邮政编码的表格。为了在地图上显示,我需要为每个州选择 X 个随机记录。我该怎么做呢?
【问题讨论】:
【参考方案1】:用途:
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
【讨论】:
这很好用。下一个问题 - 如果有机会我需要将其移植到 mysql - 是否有更普遍兼容的方式来形成查询? @Chris:不是原样 - MySQL 不支持分析/排名功能。【参考方案2】:SELECT * FROM ZipCodes ORDER BY NEWID()
【讨论】:
是的,我知道newid。我的问题是如何为每个州提取随机记录。以上是关于SQL Server - 每个状态拉 X 个随机记录的主要内容,如果未能解决你的问题,请参考以下文章