sql获取一个复杂的平均函数

sql获取一个复杂的平均函数,sql,Sql,我正试图得到这个: “创建一个视图,列出一周内所有食物的总消耗量。此视图用于帮助动物园动物订购食物。显示食物id和名称,以及每周消耗量、每种食物喂养的动物数量和平均消耗量(每周消耗量除以食用该食物的动物数量)每只动物的食物量。” 下面是我的sql查询: SELECT a.foodID ,NAME ,b.qtyperday * 7 AS "weekly consumption" ,COUNT(animalID) ,AVG(( b.qtyperday

我正试图得到这个:

“创建一个视图,列出一周内所有食物的总消耗量。此视图用于帮助动物园动物订购食物。显示食物id和名称,以及每周消耗量、每种食物喂养的动物数量和平均消耗量(每周消耗量除以食用该食物的动物数量)每只动物的食物量。”

下面是我的sql查询:

SELECT a.foodID
      ,NAME
      ,b.qtyperday * 7 AS "weekly consumption"
      ,COUNT(animalID)
      ,AVG(( b.qtyperday * 7) / COUNT(animalID))
       AS "average consumption"
FROM food a, feed b
WHERE a.foodID = b.foodID
GROUP BY foodID
我似乎无法生成任何关于平均消耗量的数据,这是最终条件
,任何解决方案???

我认为您需要获得每种食物的不同动物数量,例如:

SELECT a.foodID
      ,NAME
      ,b.qtyperday * 7 AS "weekly consumption"
      ,COUNT(DISTINCT animalID)
       AS "animals eating this food"
      ,AVG(( b.qtyperday * 7) / COUNT(DISTINCT animalID))
       AS "average consumption"
FROM food a, feed b
WHERE a.foodID = b.foodID
GROUP BY foodID

但是为了获得进一步的帮助,我认为您需要发布一些示例数据和一些预期的输出。

虽然这可能对这个问题没有影响,但您还应该为您正在使用的DBMS添加标记。Postgres?Oracle?SQL Server?