小编Mat*_*013的帖子

Oracle子查询前1个结果

我希望b的每个唯一值得到前1行,b的特定值的最小值为c.即使可以有超过1行具有相同的最小值(只选择第一行)

为myTable

  • 整数(唯一)
  • b整数
  • c整数

我试过这个查询

SELECT t1.* 
  FROM myTable t1, 
       (SELECT b, 
               MIN(c) as c 
          FROM myTable 
      GROUP BY b) t2 
 WHERE t1.b = t2.b 
   AND t1.c = t2.c
Run Code Online (Sandbox Code Playgroud)

但是,在该表中,对于给定的b值,可能存在多于1个c的最小值的实例.上述查询在这些条件下生成重复项.

我有一种感觉,我需要在某处使用rownum,但我不太确定在哪里.

sql oracle subquery sql-order-by greatest-n-per-group

4
推荐指数
1
解决办法
3839
查看次数