sql - 每种列类型的 SQL Server 随机行
问题描述
我正在尝试为他们的 playerRole 列获取 3 个不同的玩家。我在用
SELECT TOP 1 * FROM FantasyPlayers WHERE playerRole = 1 ORDER BY NEWID()
查询获得 playerRole = 1 的随机行
但是我想得到
SELECT TOP 1 * FROM FantasyPlayers WHERE playerRole = 1 ORDER BY NEWID()
SELECT TOP 1 * FROM FantasyPlayers WHERE playerRole = 2 ORDER BY NEWID()
SELECT TOP 1 * FROM FantasyPlayers WHERE playerRole = 3 ORDER BY NEWID()
3 个具有 3 个不同角色的随机玩家,这意味着每个 playerRole 有 1 个随机玩家。
我尝试了由于 NEWID() 而没有返回任何内容的 Union
任何帮助表示赞赏
谢谢
解决方案
也许...
WITH CTE AS(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY playerRole
ORDER BY NEWID()) AS RN
FROM FantasyPlayers)
SELECT *
FROM CTE
WHERE RN = 1;
推荐阅读
- r - 在 facet_grid 中标记单个图
- node.js - 将MongoDB请求声明为等待变量后多次调用,会导致对数据库的多次请求吗?
- android-studio - 如何在使用 KOTLIN 的微调器中使用数据类中存在的数组列表
- node.js - 当我以这种方式设置我的 hbs 文件时,为什么会出现“找不到部分标头”错误?
- dolphindb - 在单节点中运行代码时出现 DolphinDB 错误消息
- java - 如何从处理程序类调用活动
- json - 如何使用 TypeScript Angular 从 JSON 文件中仅检索一个对象?
- mysql - 循环不更新表上的值,索引明智
- android - 每次用户想要访问购买的产品时都需要验证收据吗?
- ansible - paloaltonetworks 配置的 ansible 错误