Show all

Information

Menghitung field/kolom pada tabel MySQL dengan kondisi tertentu dengan COUNT IF

Jumat, 16 October 2015

Administrator

Database

watched: 7678 kali

melanjutkan artikel sebelumnya yang sebelumnya telah kita bahas disini, pada kesempatan kali ini kita akan membahas cara untuk menghitung jumlah field/kolom pada tabel dengan kondisi tertentu yang harus dipenuhi dan dikelompokkan pada field tertentu, untuk contoh tabel yang akan kita gunakan, dapat dilihat disini.

Seperti kita ketahui, untuk menghitung row/baris pada tabel, kita menggunakan fungsi COUNT, yang otomatis menghitung jumlah row yang ada nilainya (row dengan nilai NULL tidak akan dihitung). baris yang dihitung dapat dilakukan dengan 2 cara yaitu:

  • COUNT(*) yaitu menghitung row untuk semua field
  • COUNT(field_name) yaitu menghitung row untuk field tertentu

Sedangkan fungsi count dibag menjadi 2 yaitu:

  • COUNT untuk menghitung semua row walaupun ada duplikasi data
  • COUNT (DISTINCT) untuk menghitung row yang unique

melanjutkan pada artikel sebelumnya, sekarang kita akan menghitung jumlah item yang terjual berdasarkan tahun panjualan, query yang kita gunakan :

 

SELECT  COUNT(IF(tgl_byr LIKE "2011%", jml_byr, NULL)) AS item_2011,
        COUNT(IF(tgl_byr LIKE "2010%", jml_byr, NULL)) AS item_2010,
        SUM(IF(tgl_byr LIKE "2011%", jml_byr, 0)) AS jml_2011,
        SUM(IF(tgl_byr LIKE "2010%", jml_byr, 0)) AS jml_2010
FROM tunai

yang akan menghasilkan:

 

SELECT  id_pelanggan,
        id_cabang,
        COUNT(IF(tgl_byr LIKE "2011%", jml_byr, NULL)) AS item_2011,
        COUNT(IF(tgl_byr LIKE "2010%", jml_byr, NULL)) AS item_2010,
        SUM(IF(tgl_byr LIKE "2011%", jml_byr, 0)) AS jml_2011,
        SUM(IF(tgl_byr LIKE "2010%", jml_byr, 0)) AS jml_2010
FROM tunai
GROUP BY id_pelanggan, id_cabang

 

maka hasil yang akan kita peroleh:

 

+--------------+-----------+-----------+-----------+----------+----------+
| id_pelanggan | id_cabang | item_2011 | item_2010 | jml_2011 | jml_2010 |
+--------------+-----------+-----------+-----------+----------+----------+
| 012546       | 12        |         1 |         2 |  1500000 |  4000000 |
| 015558       | 01        |         1 |         1 |  2900000 |   775000 |
| 020011       | 02        |         1 |         1 |  1725000 |  2450000 |
| 020011       | 05        |         3 |         0 |  3500000 |        0 |
| 027845       | 07        |         2 |         1 |  6499000 |  2730000 |
+--------------+-----------+-----------+-----------+----------+----------+
5 rows in set (0.00 sec)











Related

Facebook Comments

Back to the top