Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在每组中随机选择一行?_Sql_Oracle_Random_Greatest N Per Group - Fatal编程技术网

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

假设我在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() 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