[英]Average of rows in SQL
这是我的桌子
我想求MTK+IPA+PJOK表2的平均值
使用此代码
SELECT induk, nama, kelas,
SUM(if (kdmapel=“111”,ratarata,0)) as MTK,
SUM(if (kdmapel=“112”,ratarata,0)) as IPA,
SUM(if (kdmapel=“115”,ratarata,0)) as PJOK,
((MTK+IPA+PJOK)/3) as NAR
from nilai
WHERE kelas=1 and semester=“ganjil”
group by induk
但它不起作用,错误说
#1054 -“字段列表”中的未知列“MTK”
MTK、IPA 和 PJOK 是根据组函数计算的。
所以他们不能像那样直接使用。
一种方法是将其全部包装在子查询中,然后在外部查询中计算 NAR。
但是,它们的计算非常简单且相似。
所以 NAR 的计算并不难。
SELECT induk, nama, kelas,
SUM(if(kdmapel='111',ratarata,0)) as MTK,
SUM(if(kdmapel='112',ratarata,0)) as IPA,
SUM(if(kdmapel='115',ratarata,0)) as PJOK,
(SUM(if(kdmapel IN('111','112','115'),ratarata,0))/3) as NAR
FROM nilai
WHERE kelas=1 and semester='ganjil'
GROUP BY induk
看起来您正在引用别名,但它不知道那是什么。
要么将其编写为 CTE,然后将别名列加在一起,要么先将结果存储在临时表中,然后再添加它们。
像这样的东西
;With myCte as
(
SELECT induk,
nama,
kelas,
SUM(if (kdmapel='111',ratarata,0)) as MTK,
SUM(if (kdmapel='112',ratarata,0)) as IPA,
SUM(if (kdmapel='115',ratarata,0)) as PJOK
from nilai WHERE kelas=1 and semester='ganjil'
group by induk
)
Select *,
((MTK+IPA+PJOK)/3) as NAR
From myCte
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.