带计数、平均列的Oracle SQL视图
我有3张桌子,项目,项目和类别。项目和项目类别在项目id中链接,项目类别和类别在类别id上链接 我正在创建一个视图,其中列出类别的ID和名称、每个类别中的项目数量,并计算该类别中所有项目的平均租金 我所有的代码似乎都能工作,除了AVG_RATE,它似乎只是给出了速率(而不是每个类别的平均速率)。有什么建议吗带计数、平均列的Oracle SQL视图,sql,oracle,view,inner-join,average,Sql,Oracle,View,Inner Join,Average,我有3张桌子,项目,项目和类别。项目和项目类别在项目id中链接,项目类别和类别在类别id上链接 我正在创建一个视图,其中列出类别的ID和名称、每个类别中的项目数量,并计算该类别中所有项目的平均租金 我所有的代码似乎都能工作,除了AVG_RATE,它似乎只是给出了速率(而不是每个类别的平均速率)。有什么建议吗 CREATE VIEW V_CATEGORY AS SELECT DISTINCT category.category_id, category.name, (SELE
CREATE VIEW V_CATEGORY AS
SELECT DISTINCT category.category_id, category.name,
(SELECT COUNT(*) FROM item_category
WHERE item_category.category_id = category.category_id)
AS items_in_category,
(SELECT AVG(item.rate) FROM item_category
WHERE item_CATEGORY.item_id = item.item_id
GROUP BY item_category.category_id)
AS avg_rate
FROM category
INNER JOIN item_category ON category.category_id = item_CATEGORY.category_id
INNER JOIN item ON item_category.item_id = item.item_id;
尝试这样编写
选择:
SELECT
category.category_id,
category.name,
COUNT(item.item_id) as items_in_category,
AVG(item.rate) as avg_rate
FROM
category
INNER JOIN
item_category ON category.category_id = item_CATEGORY.category_id
INNER JOIN
item ON item_category.item_id = item.item_id
GROUP BY
category.category_id,
category.name
谢谢不幸的是,当我试图用select语句创建视图时,由于“ORA-00937:没有一个组函数”而失败。@reallybadatmath,我忘记添加GROUPBY子句…现在应该可以工作了。就像一个符咒。非常感谢!