テーブルから複数の列を選択し、1つずつグループ化する 質問する

テーブルから複数の列を選択し、1つずつグループ化する 質問する

テーブル名は「OrderDetails」で、列は以下のとおりです。

OrderDetailID || ProductID || ProductName || OrderQuantity

OrderQuantity の合計を取得しながら、複数の列を選択し、ProductID でグループ化しようとしています。

 Select ProductID,ProductName,OrderQuantity Sum(OrderQuantity)
 from OrderDetails Group By ProductID

しかし、もちろんこのコードはエラーになります。グループ化するために他の列名を追加する必要がありますが、それは私が望んでいることではなく、データには多くの項目があるため、結果は予想外のものになります。

サンプルデータクエリ:

OrderDetails からの ProductID、ProductName、OrderQuantity

結果は以下の通りです。

 ProductID     ProductName    OrderQuantity
    1001          abc               5
    1002          abc               23    (ProductNames can be same)
    2002          xyz               8
    3004          ytp               15
    4001          aze               19
    1001          abc               7     (2nd row of same ProductID)

期待される結果:

 ProductID     ProductName    OrderQuantity
    1001          abc               12    (group by productID while summing)
    1002          abc               23
    2002          xyz               8
    3004          ytp               15
    4001          aze               19

ProductName が一意ではないため、複数の列を選択し、ProductID 列でグループ化するにはどうすればよいでしょうか?

同時に、OrderQuantity 列の合計も取得します。

ベストアンサー1

複数の列を選択している場合、1 つの列でグループ化するには、次のトリックを使用します。

SELECT MAX(id) AS id,
    Nume,
    MAX(intrare) AS intrare,
    MAX(iesire) AS iesire,
    MAX(intrare-iesire) AS stoc,
    MAX(data) AS data
FROM Produse
GROUP BY Nume
ORDER BY Nume

これは機能します。

おすすめ記事