这可能非常简单,但我正在尝试执行一个返回结果平均值的查询,但我也希望它计算用于获取平均值的行数。例如:
Row 1 = 5
Row 2 = 2
Row 3 = 9
Row 4 = 1
Average = 4.25
Count = 4
有没有办法通过一个查询与两个查询来做到这一点。当我使用 avg 函数时,它总是只返回一行,所以我的计数是 1 而不是 4。我需要一个能够平均但也告诉我它经历了多少记录的查询。
我试图避免使用两个查询。谢谢您的帮助。
这是非常基本的,应该可以通过搜索发现。
SELECT COUNT(field) as `count`, AVG(field) as `average` FROM table_name
在你所说的条件下 - 如果你不是 GROUPing 或类似的东西 - 你只需写
SELECT COUNT(col) AS cnt, AVG(col) AS avg FROM tbl;
你应该没有问题。你会得到一行,字段 cnt 和 col 包含你需要的内容。
您遇到的问题可能是由于使用mysql_num_rows
来获取计数,这是不正确的。
忘了补充:或者您没有提供整个问题的事实。
您可以在单个查询中使用多个聚合函数:
SELECT COUNT(*), AVG(field) FROM mytable
SELECT COUNT(*), AVG(YourColumn)
FROM YourTable