-3

テーブルの例 注文

+---------+----------+
| | オーダー ID | 数量 |
+---------+----------+
| | 10248 | 11 |
| | 10248 | 42 |
| | 10248 | 72 |
| | 10249 | 14 |
| | 10249 | 51 |
| | 10250 | 41 |
| | 10250 | 51 |
+---------+----------+

私の質問はです。各 orderid の数量の合計を見つけ、注文ごとに最大数量を見つける方法

<select orderid , SUM(quantity) As TotalQty  from order group by orderid

結果

+--------+-----------+
|オーダーID | 合計数量 |
+--------+-----------+
| | 10248 | 125 |
| | 10249 | 65 |
| | 10250 | 92 |
+--------+-----------+

上記の結果から、合計が最も高い orderid を表示する必要があります。

最終結果は

+--------+----------+
|オーダー ID | 合計数量 |
+--------+----------+
| | 10245 | 125 |
+--------+----------+

単一のクエリでこれが必要です

4

5 に答える 5

2

SQL-Server の場合、次のOVERを使用できます。

SELECT TOP 1 orderid, SUM(Quantity)OVER(PARTITION BY orderid)AS TotalQTY
FROM dbo.Orders
ORDER BY TotalQTY DESC

Demo

列が集約されていない場合や の一部でない場合でも、すべての列を含めることができますGROUP BY

于 2013-11-15T10:01:33.157 に答える