SELECT wilayah,nilai,t_rkpd,tahun,periode
FROM nilai_indikator
INNER JOIN provinsi ON nilai_indikator.wilayah=provinsi.id
WHERE tahun='2022' AND periode='08' AND id_indikator='6'
nilai
是否小于或大于 t_rkpd
:
SELECT COUNT(CASE WHEN nilai > t_rkpd THEN 1 END) AS tercapai
FROM nilai_indikator
INNER JOIN provinsi ON nilai_indikator.wilayah=provinsi.id
WHERE tahun='2022' AND periode='08' AND id_indikator='6'
SELECT COUNT(CASE WHEN nilai < t_rkpd THEN 1 END) AS tidak_tercapai
FROM nilai_indikator
INNER JOIN provinsi ON nilai_indikator.wilayah=provinsi.id
WHERE tahun='2022' AND periode='08' AND id_indikator='6'
但是它们的结果都是0,当
nilai
大于t_rkpd
时应该是34。为什么会发生这种情况?
使用 SUM 而不是 Count 尝试相同的代码,并让我知道它是否有效。
SELECT ...,SUM(CASE WHEN nilai > t_rkpd THEN 1 ELSE 0 END) AS tercapai
FROM nilai_indikator
INNER JOIN provinsi ON nilai_indikator.wilayah=provinsi.id
WHERE tahun='2022' AND periode='08' AND id_indikator='6'
GROUP BY ...
并且您需要按某些列进行分组,因为存在聚合。如果这有帮助请告诉我