0

我有一个有 3 列的表:Animal, key, owner. 例子

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 查询来计算这些?我知道我可以在多个查询中做到这一点,但我正在寻找最好的方法。

谢谢

4

2 回答 2

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;
于 2013-02-14T23:21:14.997 回答
0

怎么样:

选择 min(Weight), max(Weight), sum(Weight), count(*) from animals_table group by animal

于 2013-02-14T23:21:56.190 回答