PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

SUM() Fungsi di PostgreSQL

Di PostgreSQL, SUM() fungsi menghitung jumlah nilai input bukan nol dan mengembalikan hasilnya.

Dengan kata lain, ini menambahkan angka dan mengembalikan hasilnya.

Contoh

Berikut adalah contoh cepat untuk mendemonstrasikan cara kerjanya:

SELECT SUM(amount) 
FROM payment;

Hasil:

67416.51

Dalam hal ini, amount adalah kolom di payment meja.

Untuk memberikan sedikit lebih banyak konteks, berikut ini cuplikan tabelnya:

+------------+-------------+----------+-----------+--------+----------------------------+
| payment_id | customer_id | staff_id | rental_id | amount |        payment_date        |
+------------+-------------+----------+-----------+--------+----------------------------+
|      16050 |         269 |        2 |         7 |   1.99 | 2017-01-24 21:40:19.996577 |
|      16051 |         269 |        1 |        98 |   0.99 | 2017-01-25 15:16:50.996577 |
|      16052 |         269 |        2 |       678 |   6.99 | 2017-01-28 21:44:14.996577 |
|      16053 |         269 |        2 |       703 |   0.99 | 2017-01-29 00:58:02.996577 |
|      16054 |         269 |        1 |       750 |   4.99 | 2017-01-29 08:10:06.996577 |
|      16055 |         269 |        2 |      1099 |   2.99 | 2017-01-31 12:23:14.996577 |
|      16056 |         270 |        1 |       193 |   1.99 | 2017-01-26 05:10:14.996577 |
|      16057 |         270 |        1 |      1040 |   4.99 | 2017-01-31 04:03:42.996577 |
|      16058 |         271 |        1 |      1096 |   8.99 | 2017-01-31 11:59:15.996577 |
...

Kita bisa melihat amount kolom yang kami tambahkan dalam contoh kami.

Tabel berisi lebih banyak data daripada itu, tetapi ini menunjukkan cuplikan nilai yang kami tambahkan.

Hasil yang Difilter

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

Mari kita filter hasilnya:

SELECT SUM(amount) 
FROM payment
WHERE customer_id = 269;

Hasil:

129.70

Jadi kali ini kami mendapatkan jumlah dari semua jumlah yang dibayarkan oleh pelanggan 269.

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(amount) AS "All",
    SUM(DISTINCT amount) AS "Distinct"
FROM payment;

Hasil:

+----------+----------+
|   All    | Distinct |
+----------+----------+
| 67416.51 |   116.75 |
+----------+----------+

Contoh ini membandingkan hasil DISTINCT pilihan untuk tidak menghilangkannya.

Dalam hal ini, ada perbedaan yang sangat besar, yang menunjukkan bahwa ada banyak nilai duplikat di kolom tersebut.

Untuk memverifikasi ini, kami dapat menampilkan nilai yang berbeda seperti ini:

SELECT DISTINCT amount
FROM payment;

Hasil:

+--------+
| amount |
+--------+
|   1.99 |
|   3.98 |
|   7.99 |
|   5.99 |
|  10.99 |
|   2.99 |
|   8.97 |
|   8.99 |
|   3.99 |
|   9.98 |
|  11.99 |
|   7.98 |
|   6.99 |
|   0.00 |
|   4.99 |
|   5.98 |
|   0.99 |
|   1.98 |
|   9.99 |
+--------+
(19 rows)

Jadi contoh kita menambahkan semua nilai yang berbeda itu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Normalisasikan subskrip larik untuk larik 1 dimensi sehingga dimulai dengan 1

  2. Mendeklarasikan struktur Tuple dari sebuah record di PL/pgSQL

  3. Bagaimana timeofday() Bekerja di PostgreSQL

  4. PostgreSql 'PDOException' dengan pesan 'tidak dapat menemukan driver'

  5. postgresql menghasilkan urutan tanpa celah