Mysql 学生。可能是一个人,零个人。我已经更新了我的答案accordingly@SecureFish:这就是第一个查询的目的--每个查询应用的数据库都在每个查询之前声明…当我第一次发布它时,问题不清楚(现在它已被编辑)。这不是前10项记录,而是前10%的记录。例如

Mysql 学生。可能是一个人,零个人。我已经更新了我的答案accordingly@SecureFish:这就是第一个查询的目的--每个查询应用的数据库都在每个查询之前声明…当我第一次发布它时,问题不清楚(现在它已被编辑)。这不是前10项记录,而是前10%的记录。例如,mysql,sql,Mysql,Sql,学生。可能是一个人,零个人。我已经更新了我的答案accordingly@SecureFish:这就是第一个查询的目的--每个查询应用的数据库都在每个查询之前声明…当我第一次发布它时,问题不清楚(现在它已被编辑)。这不是前10项记录,而是前10%的记录。例如,如果您有10条记录,则只输出第一条记录。@SecureFish:那么在得到一些答案后,您意识到您的要求被取消了吗?我们没有收到关于问题更新的通知;出于尊重,我建议您恢复您的更新,选择一个答案,然后发布另一个关于获取百分比的问题。@Secure


学生。可能是一个人,零个人。我已经更新了我的答案accordingly@SecureFish:这就是第一个查询的目的--每个查询应用的数据库都在每个查询之前声明…当我第一次发布它时,问题不清楚(现在它已被编辑)。这不是前10项记录,而是前10%的记录。例如,如果您有10条记录,则只输出第一条记录。@SecureFish:那么在得到一些答案后,您意识到您的要求被取消了吗?我们没有收到关于问题更新的通知;出于尊重,我建议您恢复您的更新,选择一个答案,然后发布另一个关于获取百分比的问题。@SecureFish:这就是第一个查询的目的——每个查询应用的数据库在每个查询之前都有说明……当我第一次发布时,这个问题不清楚(现在已经编辑)。这不是前10项记录,而是前10%的记录。例如,如果您有10条记录,则只输出第一条记录。@SecureFish:那么在得到一些答案后,您意识到您的要求被取消了吗?我们没有收到关于问题更新的通知;出于尊重,我建议您恢复更新,选择一个答案,然后发布另一个关于获取百分比的问题。一些建议,请更详细一些,以便其他人能够更好地理解您的解决方案。一些建议,请更详细一些,以便其他人能够更好地理解您的解决方案。
SELECT Stuname, TOP 10 Avg(Grade) as GPA 
  FROM Table 
GROUP BY Stuid 
ORDER BY GPA
F(conn){
Statement stmt;
int top10percnet = 0;
try{
stmt = conn.createStatement;
String query = "select CEIL(count(stuname)*10/100) as 10percent from grades";
ResultSet rs = stmt.execute(query);
while(rs.next()){
  top10percent = rs.getString("10percent");
}
query = "select stuname, avg(grade) as average from grades group by stuname order
by average desc limit " + Integer.toString(top10percnet);
rs=stmt.execute(query);
while(rs.next()){
   ...// output result
}
}
catch(SQLException e){
}



}  
SELECT Stuid, Stuname, AVG(Grade) AS GPA FROM Table
GROUP BY Stuid, Stuname
HAVING AVG(GRADE) > 90
ORDER BY GPA DESC -- If you want highest-to-lowest. Thanks Bohemian
select Stuname, Avg(Grade) as GPA
from Table
group by Stuid
order by 1 DESC -- Add DESC
LIMIT 10 -- Add LIMIT
select Stuname, Avg(Grade) as GPA from Table group by Stuid order by GPA limit 10
  SELECT t.stuname,
         AVG(t.grade) AS grade_avg
    FROM TABLE t
GROUP BY t.stuname
ORDER BY grade_avg DESC
   LIMIT 10
  SELECT TOP 10
         t.stuname,
         AVG(t.grade) AS grade_avg
    FROM TABLE t
GROUP BY t.stuname
ORDER BY grade_avg DESC
DECLARE @int_var INT
SET @int_var = 10

  SELECT TOP (@int_var)
         t.stuname,
         AVG(t.grade) AS grade_avg
    FROM TABLE t
GROUP BY t.stuname
ORDER BY grade_avg DESC
count = select CEIL(count(Stuname)*10/100) from table_name;
select Stuname from table_name ORDER BY GPA DESC limit count;