我的结构表:
我想搜索每个siswa,每个mapel和每个ranah的平均分数,但只是为了komponen = PR,tugas,ulangan。
我试过了:
SELECT `nama_siswa`, `mapel`, avg(nilai) FROM nilai_coba
GROUP BY `nama_siswa`, `mapel`, `ranah`, `komponen`='pr' AND 'tugas' AND 'ulangan'
但是UTS和UAS komponen的值也计入平均值。
在这里(红色圆圈),平均值为79.09。根据PR,tugas,ulangan,UTS和UAS计算。对于Ana in mapel PKN应该是76,7。蓝色圆圈是我的Excel数据,其中NH =(xPR + xTugas + xUH)/ 3
我也试过使用过,但我猜它仍然不正确。 那么,我如何在Pkn中获得ana的平均值是76,7?
如果我无法清楚地说出我的问题,我希望Excel屏幕截图可以提供帮助:(
答案 0 :(得分:0)
无论您使用何种数据库,这都应该是查询的开始:
SELECT komponen, AVG(nilai) AS nilai_average
FROM nilai_coba
WHERE komponen IN ('pr', 'tugas', 'ulangan')
GROUP BY komponen
ORDER BY komponen
这将显示那些komponen的平均分数。如果您使用以下查询:
SELECT komponen, nama_siswa, mapel, ranah, AVG(nilai) AS nilai_average
FROM nilai_coba
WHERE komponen IN ('pr', 'tugas', 'ulangan')
GROUP BY komponen, nama_siswa, mapel, ranah
ORDER BY komponen
然后你会看到所有这些字段的平均值被分解。
<强>更新强>
根据您添加的Excel电子表格,这应该可以获得NH:
SELECT nama_siswa, mapel, AVG(nilai) AS nilai_average
FROM nilai_coba
WHERE komponen IN ('pr', 'tugas', 'ulangan')
GROUP BY nama_siswa, mapel
ORDER BY nama_siswa, mapel
我假设对于NH,你不希望这些值除以3,但你实际上想要平均值。请注意,此方法只能为每个独特的nama_siswa和mapel获取NH。如果您希望SQL查询为您提供格式化为Excel电子表格的结果,则应该查看PIVOT函数。