0

テーブル内で最も高価な注文を見つけようとしていますが、これを達成しましたが、この特定の行を返す方法を知りたいです。現在、最も高価な注文が一番上にあるすべての行を回転させます。最も高価な注文だけを返品する方法がよくわかりません。注文番号 ( order_numb) で注文をグループ化しました。自己結合を使用してみましINたが、機能しないようです。

私のテーブル

ここに画像の説明を入力

正しい結果を返す現在のクエリは、すべての行を返すだけです

SELECT order_numb, sum(cost_each) as totalSum
FROM order_lines 
GROUP BY order_numb
ORDER BY totalSum DESC

私が達成しようとしていること

最も高価な注文を単独で取得しようとしています。

データベースとして Oracle を使用しています。

4

1 に答える 1

2

ROWNUM結果セットの最初の行(最も高価な順序)をフィルタリングするために使用します。

SELECT t.*
FROM (
  SELECT order_numb, sum(cost_each) as totalSum 
  FROM order_lines 
  GROUP BY order_numb 
  ORDER BY totalSum DESC
) t
WHERE ROWNUM <= 1
于 2012-10-13T17:10:43.830 に答える