如何将我的查询结果限制为在一列中包含一定数量项目的结果?
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;
我正在尝试从我的电影数据库中查询结果,其中 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;