sql - 列中出现的次数
问题描述
我有下表
actor_id movie_id
---------------------
1 20
2 10
3 8
4 6
1 21
我需要以下输出
actor_id movie_count
-----------------------
1 2
2 1
3 1
4 1
解决方案
你需要“聚合”。要计算每个演员有多少部电影,您可以这样做:
select
actor_id,
count(*) as movie_count
from t
group by actor_id
现在,如果你需要计算每个演员有多少部不同的电影,你可以这样做:
select
actor_id,
count(distinct movie_id) as movie_count
from t
group by actor_id
如果您更改预期结果,您应该问另一个问题。无论如何,这是添加演员名字的增强查询:
select
c.*,
a.first_name,
a.id
from (
select
actor_id,
count(*) as movie_count
from t
group by actor_id
) c
join actor a on a.actor_id = c.actor_id
推荐阅读
- python - numpy数组中两组值之间的距离
- perl - Perl Mojolicious 存储转储
- javascript - Rxjs:使用 bufferCount 时如何获取最后一个值
- django - 特定模型的 Django 组权限
- python-3.x - 如何修复 Python 3 中的“import asammdf”错误
- javascript - 如何从对象列表中创建键值对象
- python - EVE - POST 请求时出现 500 内部服务器错误
- python - 这个 powerset 函数的时间复杂度是多少?
- swift - 无法在 ARKit 中旋转 SCNNode
- c# - 如何通过重复字符拆分字符串?