3

这可能非常简单,但我正在尝试执行一个返回结果平均值的查询,但我也希望它计算用于获取平均值的行数。例如:

Row 1 = 5
Row 2 = 2
Row 3 = 9
Row 4 = 1

Average = 4.25
Count = 4

有没有办法通过一个查询与两个查询来做到这一点。当我使用 avg 函数时,它总是只返回一行,所以我的计数是 1 而不是 4。我需要一个能够平均但也告诉我它经历了多少记录的查询。

我试图避免使用两个查询。谢谢您的帮助。

4

4 回答 4

7

这是非常基本的,应该可以通过搜索发现。

SELECT COUNT(field) as `count`, AVG(field) as `average` FROM table_name
于 2012-09-05T20:25:13.260 回答
1

在你所说的条件下 - 如果你不是 GROUPing 或类似的东西 - 你只需写

SELECT COUNT(col) AS cnt, AVG(col) AS avg FROM tbl;

你应该没有问题。你会得到一行,字段 cnt 和 col 包含你需要的内容。

您遇到的问题可能是由于使用mysql_num_rows来获取计数,这是不正确的。 忘了补充:或者您没有提供整个问题的事实。

于 2012-09-05T20:27:35.370 回答
0

您可以在单个查询中使用多个聚合函数:

SELECT COUNT(*), AVG(field) FROM mytable
于 2012-09-05T20:25:21.890 回答
0
SELECT COUNT(*), AVG(YourColumn)
    FROM YourTable
于 2012-09-05T20:25:43.433 回答