Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL - Subquery dalam Fungsi Agregat

Subquery umumnya tidak diperbolehkan dalam fungsi agregat. Sebagai gantinya, pindahkan agregat di dalam subkueri. Dalam hal ini, Anda memerlukan tingkat subkueri tambahan karena 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Parameter Bernilai Tabel dalam Prosedur Tersimpan dan Kerangka Entitas 4.0

  2. SQL Server Membangun Kembali dan Mengatur Ulang Indeks

  3. Temukan Kolom Partisi untuk Tabel yang Dipartisi di SQL Server (T-SQL)

  4. SQL Server Ketersediaan tinggi:Tambahkan disk baru ke instance kluster failover yang ada

  5. Bagaimana cara menambahkan baris kosong saat memilih kueri sql