Mysql 计算该值是否小于或大于其他值

问题描述 投票:0回答:1
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'

当我查询该代码时,结果是这样的 table 我尝试使用以下代码计算

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。为什么会发生这种情况?

sql mysql phpmyadmin
1个回答
0
投票

使用 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 ...

并且您需要按某些列进行分组,因为存在聚合。如果这有帮助请告诉我

© www.soinside.com 2019 - 2024. All rights reserved.