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

SUM() Fungsi di SQL Server

Di SQL Server, SUM() fungsi agregat mengembalikan jumlah ekspresi yang diberikan.

Ini juga dapat digunakan untuk mengembalikan jumlah semua nilai (unik) yang berbeda dalam ekspresi.

SUM() hanya bekerja pada kolom numerik. Nilai nol diabaikan.

Sintaks

Sintaksnya seperti ini:

SUM ( [ ALL | DISTINCT ] expression ) 

Itu juga dapat digunakan dengan OVER klausa:

SUM ([ ALL ] expression) OVER ( [ partition_by_clause ] order_by_clause)

Contoh

Misalkan kita memiliki tabel bernama Products dengan data sebagai berikut:

SELECT
    VendorId,
    ProductName,
    ProductPrice
FROM Products;

Hasil:

+------------+---------------------------------+----------------+
| VendorId   | ProductName                     | ProductPrice   |
|------------+---------------------------------+----------------|
| 1001       | Left handed screwdriver         | 25.99          |
| 1001       | Long Weight (blue)              | 14.75          |
| 1001       | Long Weight (green)             | 11.99          |
| 1002       | Sledge Hammer                   | 33.49          |
| 1003       | Chainsaw                        | 245.00         |
| 1003       | Straw Dog Box                   | NULL           |
| 1004       | Bottomless Coffee Mugs (4 Pack) | 9.99           |
| 1001       | Right handed screwdriver        | 25.99          |
+------------+---------------------------------+----------------+

Kita dapat menggunakan kueri berikut untuk mendapatkan jumlah semua harga.

SELECT SUM(ProductPrice)
FROM Products;

Hasil:

367.20

Di sini, informasi harga disimpan di ProductPrice kolom, jadi kami meneruskannya sebagai argumen ke SUM() fungsi, yang kemudian menghitung jumlah dan mengembalikan hasilnya.

Nilai Null

SUM() fungsi mengabaikan nilai nol saat melakukan perhitungannya.

Jika kolom berisi nilai nol, Anda mungkin melihat peringatan yang menunjukkan bahwa nilai nol telah dihapus.

Sebagai contoh, inilah peringatan yang saya dapatkan saat menjalankan contoh di atas:

SELECT SUM(ProductPrice)
FROM Products;

Hasil:

+--------------------+
| (No column name)   |
|--------------------|
| 367.20             |
+--------------------+
Warning: Null value is eliminated by an aggregate or other SET operation.

Hasil yang Difilter

SUM() fungsi beroperasi pada baris yang dikembalikan oleh kueri. Jadi jika Anda memfilter hasilnya, hasil dari SUM() akan mencerminkan hal itu.

SELECT SUM(ProductPrice)
FROM Products
WHERE VendorId = 1001;

Hasil:

78.72

Dalam hal ini, 78,72 adalah jumlah dari semua produk yang ditawarkan oleh vendor tertentu.

Yang DISTINCT Kata kunci

Anda dapat menggunakan DISTINCT kata kunci dengan SUM() untuk menghitung hanya nilai yang berbeda. Artinya, jika ada nilai duplikat, mereka diperlakukan sebagai satu nilai.

Contoh:

SELECT 
    SUM(ALL ProductPrice) AS "All",
    SUM(DISTINCT ProductPrice) AS "Distinct"
FROM Products;

Hasil:

+--------+------------+
| All    | Distinct   |
|--------+------------|
| 367.20 | 341.21     |
+--------+------------+
Warning: Null value is eliminated by an aggregate or other SET operation.

Meja kami berisi dua item dengan harga yang sama (obeng tangan kiri dan obeng tangan kanan sama-sama dihargai 25,99). DISTINCT kata kunci menghasilkan kedua nilai tersebut diperlakukan sebagai satu.

Fungsi Jendela

SUM() fungsi dapat digunakan dengan OVER klausa untuk membuat fungsi jendela. Lihat SQL SUM() untuk Pemula sebagai contoh.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pisahkan kata dengan huruf kapital di sql

  2. SQL Server SELECT di mana kolom mana pun berisi 'x'

  3. Kapan kita harus menggunakan NVARCHAR/NCHAR daripada VARCHAR/CHAR di SQL Server?

  4. Mengapa IS NOT NULL mengembalikan nilai NULL untuk Varchar (maks) di SQL Server?

  5. Buat Pekerjaan Agen SQL Server menggunakan SSMS