MYSQL 多查询还是单查询——哪个更高效

标签 mysql

我有一个包含 3 列的表格:Animalkeyowner。示例

Cat     1     Bob
Bird    2     Bob
dog     3     Bob
dog     4     Andy
Lizard  5     Andy
Bird    6     Andy
Cat     7     Andy

以及每只动物一张相关表格(列键、重量)。例如,表 CAT_WEIGHT:

1   12
7   17

我想找到 MinMaxAverageTotalCount 针对每种动物类型,但仅针对特定所有者。

是否可以使用单个 MYSQL 查询来计算这些值?我知道我可以在多个查询中做到这一点,但我正在寻找最好的方法。

谢谢

最佳答案

是的,只使用一个查询就可以做到这一点。

在所有其他条件相同的情况下,您希望使用尽可能少的查询。往返数据库通常是您在程序中会遇到的一些更昂贵的事情。

select 
  animal, 
  min(weight)   min_weight, 
  max(weight)   max_weight, 
  avg(weight)   avg_weight, 
  sum(weight)   tot_weight, 
  count(weight) cnt_weight
from 
  your_table
group by 
  animal 
order by animal;

关于MYSQL 多查询还是单查询——哪个更高效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14885836/

相关文章:

mysql - 根据 varchar 字段中的 json 数据排序

mysql - 对于表中的每个不同 ID,计算不同表中相关 UID 的数量。 (SQL)

php - 在MySQL中根据数量获取SUM?

php - 在达到特定时间段和/或行数后更改 mysql 默认值?

java - 创建一个后端 java RESTful API,该 API 将与存储在云上的数据库进行通信

php - 需要正确的 PHP/MySQL 语法帮助

sql - Mysql语法帮助

mysql - 关于SQL语法的问题

应用程序运行一段时间后,PHP无法连接到mysql

mysql - "MySQL server has gone away"与 Ruby on Rails