我有一个 MySQL 语句:
SELECT name, ((AVG (q1) + AVG(q2) + AVG(q3) / 3) AS Average
FROM tresults GROUP BY name ORDER BY name;
我还有另一个MySQL语句:
SELECT name, ((AVG (q1) + AVG(q2) + AVG(q3) / 3) AS Average
FROM tresults WHERE q35 = 1 GROUP BY name ORDER BY name;
我尝试过使用子查询,但由于它返回不止一行,因此以下代码不起作用:
SELECT name, ((AVG (q1) + AVG(q2) + AVG(q3) / 3) AS Average,
(SELECT ((AVG (q1) + AVG(q2) + AVG(q3) / 3)
FROM tresults WHERE q35 = 1 GROUP BY name ORDER BY name ) AS Average2
FROM tresults GROUP BY name ORDER BY name;
这可能吗?声明的结构会是什么样子?
预先感谢您提供的所有反馈和建议。
最佳答案
SELECT name,
(AVG (AVG (q1) + AVG(q2) + AVG(q3) / 3) AS Average,
(AVG (AVG (case when q35 = 1 then q1 else 0 end) +
(AVG (case when q35 = 1 then q2 else 0 end) +
(AVG (case when q35 = 1 then q3 else 0 end) / 3) AS q35_Average
FROM tresults
GROUP BY name
ORDER BY name
关于MySQL 可以进行单查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24853733/