c# - 聚合 SQL 函数; C# 中的 AVG

标签 c# mysql aggregate-functions

我有两张 table 。学生和测试。我想做一个查询,获取成绩高于平均 test_results 的学生的学生姓名(名字和姓氏)。

我认为我当前的查询是错误的。也许是因为我没有加入这两个表?这是我的查询(C# 语言)

   MySqlCommand cmd = new MySqlCommand("SELECT student.studentFirstName, student.studentLastName, test.test_results FROM student, test WHERE test_results > (SELECT AVG(test_results) FROM test; ");

you have an error in your SQL syntax

如果我必须加入这两个表。我在两个表中都有一个名为 StudentID 的列

最佳答案

该错误是由于缺少括号造成的。 FROM test 之后应该有括号。

但是您的查询本身是错误的,需要更正。正确的查询如下:

SELECT student.studentFirstName, student.studentLastName, test.test_results 
FROM student, test 
WHERE student.studentID = test.studentID AND 
test_results > (SELECT AVG(test_results) FROM test);

如果您想要具有 JOIN 风格的解决方案,您可以这样做:

SELECT student.studentFirstName, student.studentLastName, test.test_results 
FROM student INNER JOIN test ON student.id = test.id
WHERE test_results >( SELECT AVG(test.test_results) FROM test);

关于c# - 聚合 SQL 函数; C# 中的 AVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42618493/

相关文章:

c# - react 性 : Trying to understand how Subject<T> work

mysql - mysql 是否在选择、更新或删除时锁定表?

sql - mysql计数性能

php - CakePHP-DateTime 和 php 的 date()

php - MySql 只返回一个重复条目的实例

sql - 如何在 do 列中按日期划分分组数据

Mysql 按两列分组并选择第三列的最大值

c# - "For money, always decimal"?

c# - 在反序列化之前获取 WCF 消息正文

c# - System.Array 不包含 ToArray 的定义