Sql 在每组中随机选择一行?
假设我在Oracle中有以下SQL:Sql 在每组中随机选择一行?,sql,oracle,random,greatest-n-per-group,Sql,Oracle,Random,Greatest N Per Group,假设我在Oracle中有以下SQL: select field1,field2 from table where field2 in (32,421,5766) and ..... 它通常会返回许多行。 如何从字段2定义的每个组中选择3个随机行,并与其余条件相匹配使用行数分析函数,并为行提供随机顺序: SELECT field1, field2 FROM ( SELECT field1, field2, ROW_NUMBER() OV
select field1,field2 from table where field2 in (32,421,5766) and .....
它通常会返回许多行。
如何从字段2定义的每个组中选择3个随机行,并与其余条件相匹配使用
行数
分析函数,并为行提供随机顺序:
SELECT field1,
field2
FROM (
SELECT field1,
field2,
ROW_NUMBER() OVER ( PARTITION BY field2 ORDER BY DBMS_RANDOM.VALUE() )
AS rn
FROM table_name
WHERE field2 IN (32, 421, 5766)
)
WHERE rn = 1;
其中,对于样本数据:
创建表\u名称(字段1,字段2)作为
选择级别,从双连接中选择级别1,按级别连接谢谢。。。db小提琴。。。。凉爽的
FIELD1 | FIELD2
-----: | -----:
3 | 32
6 | 421
7 | 5766