sql >> データベース >  >> RDS >> Sqlserver

SQL - 集計関数のサブクエリ

    サブクエリは通常、集計関数では許可されていません。代わりに、集計を 内側 に移動します サブクエリ。この場合、top 5 のため、追加レベルのサブクエリが必要になります。 :

    SELECT c.CategoryName,
      (select sum(val)
       from (SELECT TOP 5 od2.UnitPrice*od2.Quantity as val
             FROM [Order Details] od2, Products p2
             WHERE od2.ProductID = p2.ProductID
             AND c.CategoryID = p2.CategoryID
             ORDER BY 1 DESC
            ) t
      )
    FROM [Order Details] od, Products p, Categories c, Orders o 
    WHERE od.ProductID = p. ProductID
    AND p.CategoryID = c.CategoryID
    AND od.OrderID = o.OrderID
    AND YEAR(o.OrderDate) = 1997
    GROUP BY c.CategoryName, c.CategoryId
    


    1. INNERJOINの前のWHERE句

    2. MySQLルートパスワードを削除する方法

    3. CodeIgniter:選択(個別のフィールド名)MySQLクエリを実行する方法

    4. MySQLでテーブルを列名で並べ替える