Saya mempunyai data DPT di SQLite dengan format TPS tidak asik yaitu TPS 1, TPS 2 dst sehingga kalau di GROUP BY pasti tidak urut 1, 2, 3 dst, sehingga perlu dilakukan
- Membuang kata ‘TPS ‘ di depan angka menggunakan Regex
- Menjadikan angka sebagai Integer
Karena tidak ada fasilitas Regex pada SQLite maka kita memanfaatkan library SQLean pada SQLite Studio.
1
2
3
4
5
6
7
8
9
| SELECT DESA,
TPS,
CAST (regexp_replace(TPS, 'TPS (.+?)$', '$1') AS INT) AS TPS2,
COUNT(ID) AS jumlah
FROM dpt2024
WHERE DESA = 'MALASAN' AND
KECAMATAN = 'DURENAN'
GROUP BY TPS
ORDER BY TPS2; |
SELECT DESA,
TPS,
CAST (regexp_replace(TPS, 'TPS (.+?)$', '$1') AS INT) AS TPS2,
count(ID) AS jumlah
FROM dpt2024
WHERE DESA = 'MALASAN' AND
KECAMATAN = 'DURENAN'
GROUP BY TPS
ORDER BY TPS2;
Dan hasilnya …

Kalau ingin sederhana kamu bisa membuat satu tabel dan mengisinya dengan hasil ReGex
Padahal yg diatas gak usah pakai REGEX sebenarnya bisa, itu buat latihan aja hehe
1
2
3
4
5
6
7
8
9
| SELECT DESA,
TPS,
CAST (REPLACE(TPS, 'TPS ', '') AS INT) AS TPS2,
COUNT(ID) AS jumlah
FROM dpt2024
WHERE DESA = 'MALASAN' AND
KECAMATAN = 'DURENAN'
GROUP BY TPS
ORDER BY TPS2; |
SELECT DESA,
TPS,
CAST (replace(TPS, 'TPS ', '') AS INT) AS TPS2,
count(ID) AS jumlah
FROM dpt2024
WHERE DESA = 'MALASAN' AND
KECAMATAN = 'DURENAN'
GROUP BY TPS
ORDER BY TPS2;