【发布时间】:2012-08-28 20:17:44
【问题描述】:
假设(高度匿名):
Create Table myTable
(
ID INT PK,
INDEXNUMBER INT,
VERSION INT,
Data VARCHAR(MAX)
)
此表用于存储互斥数据。 例如:
100 1 1 BOB
217 1 2 JOHN
319 1 3 GEORGE
420 7 1 MARY
415 7 2 SUSAN
在这种情况下,我需要随机选择 BOB、JOHN 或 GEORGE 中的一个和 MARY 或 SUSAN 中的一个。
我对 ID 或 INDEXNUMBER/VERSION 对感到满意。
如果考虑一下的话,这就像从包含花名册的表格中挑选一支曲棍球队的单班:
从 3 个可用的中心中选择 1 个, 从 5 个可用的左翼中选择 1 个,等等。
我一直在玩NEWID() 和MAX/MIN(先将NEWID 转换为varchar),但我一直挂断GROUP BY。如果我GROUP BY ID,那么 max 一次只对一行进行操作,产生整个表。
如果我 GROUP BY INDEXNUMBER, VERSION 我得到类似的结果(这对是唯一的)。
我需要做的是GROUP BY INDEXNUMBER(从查询中完全排除ID)但以某种方式检索VERSION。
【问题讨论】:
标签: sql-server random