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

发布于 2025-01-23 05:35:11 字数 790 浏览 0 评论 0原文

我正在尝试查询电影数据库的结果,这些结果返回至少有3个演员的电影。我只需要获取titleID,就可以从那里去。如何从表actors中拉出titleID,其中personid s&gt的数字; 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);```

I am trying to query results from my movie database that returns movies that have at least 3 actors listed. I just need to get the titleid and I can go from there. How do I pull the titleid from the table actors where the number of personids > 3.

I have tried:

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

But this appears to be a misuse of COUNT(). Is there a function I can use?

SCHEMA:

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);```

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泛滥成性 2025-01-30 05:35:11

您可以在中使用在 contregation查询的子句中使用count()汇总函数:

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

以防万一可以在Actors 对于同一部电影,您应该计算独特的themid s:

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

You can use COUNT() aggregate function in the HAVING clause of an aggregation query:

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

Just in case an actor may be listed more than once in actors for the same movie, you should count the distinct personids:

SELECT titleid
FROM actors
GROUP BY titleid
HAVING COUNT(DISTINCT personid) >= 3;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文