我有一个包含测量数据的MySQL表。例如:
# name, time
first, 0.0013
second, 0.0015
third, 0.0012
fourth, 0.0019
我想计算所有行的MAX,MIN和AVG。因此,以上示例的结果应为:
MIN: 0.0012
MAX: 0.0019
AVG: 0.001475
我知道MIN,MAX和AVG MYSQL函数。但是它们返回单个字段的结果。我需要类似于COUNT函数的汇总结果。
编辑:
对于我来说,不必一次查询所有3个函数的结果。可以有3个不同的查询。主要问题是如何汇总示例中说明的所有行的MAX。
答案 0 :(得分:1)
如果我从我们的评论中正确理解,我相信这就是您要寻找的内容,应该在一个查询中完成。
SELECT
MIN(time) AS minimum,
MAX(time) AS maximum,
AVG(time) AS average
FROM t;
答案 1 :(得分:1)
您不介意在其他查询中使用它吗?然后,您可以轻松进行汇总,而无需任何麻烦。
SELECT MIN(time) AS minimum FROM <tablename>
SELECT MAX(time) AS minimum FROM <tablename>
SELECT AVG(time) AS minimum FROM <tablename>
编辑:这也可以在没有问题的情况下汇总到单个查询中。
SELECT MIN(time) AS minimum, MAX(time) AS maximum, AVG(time) AS average FROM <tablename>
我不知道使用聚合器而不进行分组时会返回多列。很好的特殊情况。感谢Johan和HoldOffHunger的澄清。
答案 2 :(得分:0)
像这样:
select ROW_NUMBER(), least(first, second, third, fourth) as min,
greatest(first, second, third, fourth) as max,
(first+ second+ third+ fourth)/4 as avg
from table t;
然后,如果您需要所有行的平均值,则可以编写另一个查询以根据此结果进行计算。