如何将我的查询结果限制为在一列中包含一定数量项目的结果?

How do I limit my query results to results that include a certain number of items in a column?

我正在尝试从我的电影数据库中查询结果,其中 returns 列出了至少 3 个演员的电影。我只需要得到 titleid 就可以从那里开始。如何从 table actors 中拉出 titleid,其中 personid 的数量 > 3.

我试过:

SELECT titleid FROM actors WHERE COUNT(personid) > 3;

但这似乎是对 COUNT() 的误用。有我可以使用的功能吗?

架构:

CREATE TABLE actors(
  titleid TEXT,
  ordering INT,
  personid TEXT,
  category TEXT,
  job TEXT,
  characters TEXT
);

CREATE TABLE actornames(
  personid TEXT,
  name TEXT,
  birth INT,
  death INT,
  profession TEXT,
  knowntitles TEXT,
  titleid TEXT,
  ordering INT,
  "personid:1" TEXT,
  category TEXT,
  job TEXT,
  characters TEXT
);

CREATE TABLE ratings (titleid TEXT, rating DEC, votes INT);

CREATE TABLE movielist(title TEXT,titleid TEXT);```

您可以在聚合查询的 HAVING 子句中使用 COUNT() 聚合函数:

SELECT titleid
FROM actors
GROUP BY titleid
HAVING COUNT(*) >= 3;

以防万一一个演员可能在同一部电影的 actors 中被多次列出,您应该计算不同的 personid 个:

SELECT titleid
FROM actors
GROUP BY titleid
HAVING COUNT(DISTINCT personid) >= 3;