找出合作过三次的演员和导演

  • GROUP BY actor_id, director_id:按照 actor_id 和 director_id 的组合进行分组,这样可以将每个演员和导演的合作记录归为一组。
  • HAVING COUNT(*) >= 3:对每个分组进行统计,筛选出记录数量大于等于 3 的分组,也就是合作次数大于等于 3 次的演员和导演组合
  • # 新建表
    create table actordirector
    (actor_id int not null,
    director_id int not null,
    timestamp int not null,
    primary key(timestamp));
    #查询
    select * from actordirector;
    #插入数据
    insert into actordirector values
    (1,1,0),
    (1,1,1),
    (1,1,2),
    (1,2,3),
    (1,2,4),
    (2,1,5),
    (2,1,6);
    insert into actordirector values (1,1,2);

    # 找出至少合作过三次的演员和导演

  •  自己写的嵌套是错误的

  • select director_id,actor_id
    from actordirector
    where actor_id in (
    select actor_id
    from actordirector
    group by actor_id
    having count(actor_id)>=3
    )
    group by director_id
    having count(director_id)>=3;

posted @ 2025-04-16 16:29  胖豆芽  阅读(9)  评论(0)    收藏  举报