Materi
CASE yang menghasilkan 1 atau 0 dapat dijumlahkan. Pola ini mengubah hitungan bersyarat menjadi kolom: setiap SUM(CASE ...) menghitung satu kelompok, dan semuanya muncul berdampingan dalam satu baris hasil. Tanpa pola ini, tiga kelompok berarti tiga kueri terpisah yang hasilnya disalin satu per satu.
SELECT
SUM(CASE WHEN status = 'selesai' THEN 1 ELSE 0 END) AS selesai,
SUM(CASE WHEN status = 'batal' THEN 1 ELSE 0 END) AS batal
FROM pesanan;Bersama GROUP BY, pola yang sama menghasilkan tabel silang: satu baris per kelompok, satu kolom per kategori. Rekap kehadiran satu semester ditulis begini — SELECT kelas, SUM(CASE WHEN keterangan = 'hadir' THEN 1 ELSE 0 END) AS hadir, SUM(CASE WHEN keterangan = 'izin' THEN 1 ELSE 0 END) AS izin FROM absensi GROUP BY kelas — dan hasilnya langsung berbentuk tabel yang siap dicetak.