嗨我有像
这样的数据库 name to Maths Science
stud1 stud2 30 50
**stud1 stud1 40 60**
stud2 stud2 20 90
**stud3 stud1 60 80**
当我将我的数据库作为stud1查询时,我需要输出为 我需要为他自己获得stud1的值,他评价并且所有值属于他的平均值**在上面
AVg(Maths) Maths
50 40
任何人都可以建议我如何进行此查询。
答案 0 :(得分:0)
SELECT Name, (SELECT AVG(maths) from tbl),MATHS from tbl
答案 1 :(得分:0)
Avg()函数是一个组操作,其中select是一个行操作。您不应该尝试在单个查询中将它们组合在一起,因为它包含冗余信息。但是,如果你想继续,你可以这样做:
select to, name, maths, science, (select avg(maths) from table),
(select avg(science) from table) from table where to ="stud1";
答案 2 :(得分:0)
嗯,不知道为什么答案会忽略平均值:
SELECT
AVG(Maths) AS AvgMaths,
MAX(IF(name=to), Maths, NULL)) AS Maths
FROM some_table WHERE to = 'stud1'
注意:我认为平均值是:43。(3行中有'stud1',而不是2行)