sql - 如何计算sql中表中特定类型的项目数?
问题描述
我有一个名为 Movie 的表,带有 actor 属性。Actors_type 是特定的,如下所示:
GEORGE.ACTOR_TYPE('Clint Eastwood', 'Christopher Carley', 'Bee Vang', 'Ahney Her')
ACTOR_TYPE 实现为 varchar(20) 的 varray(5)
我试图计算每个演员的电影数量的查询是:
select m.title, a.column_value, count(m.title)
from movie m, table(m.actors) a
group by m.title, a.column_value
order by a.COLUMN_VALUE
这给了我每一行的计数(?)而不是每个演员的电影计数。输出如下:
我想要得到的是列出在多部电影中表演的演员并显示电影标题和演员。但是当我在 select 语句中添加 m.title 时,它会计算每一行。这是我写的另一个查询:
select a.column_value, count(m.title)
from movie m, table(m.actors) a
having count(m.title) > 1
group by a.column_value
order by a.COLUMN_VALUE
结果是:
我也需要将标题添加到输出中,但是当我添加它时,所有计数都将是一个,作为第一个表。
Actors 没有表,我们通过创建表table(m.actors) a
来访问它的项目
解决方案
你必须从 group by 和 selection 中删除 m.title 因为你要根据actor来计算它。我假设 column_value 是两个表之间的公共列,所以我在加入时使用它你需要尝试如下
select a.column_value, count(m.title)
from movie m
join m.actors a on m.column_value=a.column_value
group by a.column_value
order by a.COLUMN_VALUE
推荐阅读
- python - 类型错误:序列项 0:预期的 str 实例,找到段落
- sql - SQL - 对于任何给定的日期记录,选择之前记录的日期
- javascript - 将对象附加到 HTML
- r - 如何在每个节点中获取 SOM 图上的集群数?
- mysql - 我可以使用别名或常量作为 JSON_EXTRACT 函数的 JSON 键吗
- html - 将网站转换为不能在 Edge 上运行的 Progressive Web App (PWA)
- css - 有没有办法让 div 的高度设置为`overflow-y: auto`
- python - 将 Heroku 一次性测功机作为 `:detached` 运行会导致它消耗更多内存吗?
- php - 使用 PHP 打开文件的首选 fopen 模式是什么?
- c# - 有没有办法在移动后停止将 pos2 移动到 pos1 ?