SQL Lite 平均分数

问题描述 投票:0回答:2
PreStatement = myConnection.prepareStatement(""
                        + "SELECT Game1.AVG(Score),Students.FirstName,Students.LastName "
                        + "FROM Game1 " 
                        + "INNER JOIN Students " 
                        + "ON Game1.StudentID = Students.StudentID " 
                        + "ORDER BY Students.FirstName ASC;");

这行不通。 (错误肯定是AVG Score部分)

但这确实:

PreStatement = myConnection.prepareStatement(""
                        + "SELECT AVG(Score),
                        + "FROM Game1 " 

我是否做错了什么,或者我是否必须做两个陈述才能得到我的平均分数?

java sql sqlite
2个回答
2
投票

试试这个。

PreStatement = myConnection.prepareStatement(""
                        + "SELECT AVG(Game1.Score),Students.FirstName,Students.LastName "
                        + "FROM Game1 " 
                        + "INNER JOIN Students " 
                        + "ON Game1.StudentID = Students.StudentID " 
                        + "ORDER BY Students.FirstName ASC;");

0
投票

如果您想要每个学生的平均值,那么您应该使用

GROUP BY
:

SELECT AVG(g.Score), s.FirstName, s.LastName
FROM Game1 g INNER JOIN
     Students s
     ON g.StudentID = s.StudentID 
GROUP BY s.FirstName, s.LastName
ORDER BY s.FirstName ASC;

表别名还使查询更易于编写和读取。

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