mysql> select*from score; +-------------+--------+-------+-------+ | S_no | C_no | daily | final | +-------------+--------+-------+-------+ | 18122221320 | a01564 | 88 | 93 | | 18122221320 | c06108 | 92 | 90 | | 18122221320 | c08123 | 85 | 95 | | 18122221321 | c06108 | 70 | 82 | | 18122221321 | c08123 | 85 | 94 | | 18122221322 | a01327 | 53 | 50 | | 18122221322 | a01564 | 64 | 50 | | 18122221322 | c08123 | 60 | 64 | | 18122221323 | a01564 | 88 | 84 | | 18122221323 | c05103 | 85 | 86 | | 18122221324 | c05103 | 95 | 86 | | 18122221324 | c08123 | 77 | 81 | | 18122221325 | c05103 | 88 | 90 | +-------------+--------+-------+-------+ 13 rows in set (0.00 sec)mysql> SELECT S_no, AVG(final) AS average_score, SUM(final) / COUNT(*) AS final_score -> -> FROM score -> -> WHERE final > 275 -> -> GROUP BY S_no; Empty set (0.00 sec)

P粉955425168
P粉955425168
2023-10-19 60浏览

看起来你正在尝试使用MySQL从名为score的表中查询数据,但似乎遇到了一些问题。你在第一个查询中选择了所有的字段,然后在第二个查询中只选择了S_no字段以及final字段的平均值和总和/数量。但是第二个查询中你试图使用WHERE final > 275来过滤结果,但结果却是空的。

这个问题可能的原因是你在第二个查询中没有正确地指定表名。你应该在FROM关键字后面指定表名,而不是使用score作为表名。另外,你可能需要检查你的数据是否满足条件final > 275,如果所有记录的final字段都小于这个值,那么你的查询将返回空结果。

下面是你的第二个查询应该如何修正:

SELECT S_no, AVG(final) AS average_score, SUM(final) / COUNT(*) AS final_score 
FROM your_table_name
WHERE final > 275
GROUP BY S_no;

请将上述查询中的your_table_name替换为你的实际表名。如果这个查询仍然返回空结果,那么可能是你的数据集不满足条件final > 275。在这种情况下,你需要检查你的数据或调整你的查询条件。

php中文网 免责声明:以上内容除特别注明外均来源于网友提问,php中文网回答,权益归原著者所有;