考虑这两个表:
# table: feeding
feeding_id int(15)
user_id int(15)
herd_id int(15)
feeding_datetime datetime
herd_num_animals smallint(5)
# table feeding_supp
feeding_id int(15)
supp_name varchar(50)
supp_weight double(8,2)
supp_dry_weight double(5,2)
supp_price double(9,2)
我想知道每周喂多少公斤。通过使用SUM(fs.supp_weight)
并对每年/每周的结果进行分组,我得到了总重量。这很好。
但是,我希望每只动物的体重 。所以我的想法是使用SUM(fs.supp_weight) / SUM(f.herd_num_animals)
。但由于分组在另一个表上,SUM(f.herd_num_animals)
导致整个表的总和,而不是每年/每周。
我该如何实现?
有关信息,这是整个查询:
SELECT
f.herd_id,
f.herd_num_animals,
h.herd_name,
YEAR(f.feeding_datetime) AS year,
WEEK(f.feeding_datetime,3) AS week,
SUM(fs.supp_weight) / SUM( f.herd_num_animals ) AS supp_weight
FROM
feeding_supp fs
LEFT JOIN
feeding f ON f.feeding_id = fs.feeding_id
LEFT JOIN
herd h ON h.herd_id = f.herd_id
WHERE
f.herd_id=?
GROUP BY
WEEK(feeding_datetime,3)
ORDER BY
f.herd_id ASC,
YEAR(f.feeding_datetime) ASC,
WEEK(f.feeding_datetime,3) ASC