MYSQL多个查询或单个查询 - 效率更高

时间:2013-02-14 23:17:30

标签: 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查询可以计算这些吗?我知道我可以在多个查询中完成它,但我正在寻找最好的方法。

由于

2 个答案:

答案 0 :(得分:3)

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

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

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;

答案 1 :(得分:0)

怎么样:

  

动物选择动物组的最小(体重),最大(体重),总和(体重),计数(*)