如何指定我的条件是数字。 sqlite3

时间:2021-01-21 21:25:19

标签: sql sqlite

我在这里有这个查询,它应该从一个名为 ratings 的表中计算平均收视率,该表有一个 movie_id 和一个 rating 列。但我必须计算 2012 年发行的电影的平均值。我必须计算我选择的表名中的平均值,所以我选择了 num 的 avgg 文本,我可以将任何内容写入其中,rat 是平均值的评级。我认为我的问题是我的代码没有将 2012 作为数值进行比较。这是查询。

CREATE TABLE avgg(num TEXT, rat INTEGER)
INSERT INTO avgg(num)
VALUES('The average is')
INSERT INTO avgg(rat)
SELECT avg(rating)
FROM ratings 
WHERE movie_id = (SELECT id FROM movies WHERE year = 2012)

1 个答案:

答案 0 :(得分:0)

问题在于您使用的语法。
您可以在单个 num 语句中插入包含 ratINSERT 列的行:

INSERT INTO avgg(num, rat)
SELECT 'The average is', AVG(rating)
FROM ratings 
WHERE movie_id IN (SELECT id FROM movies WHERE year = '2012');

或者加入:

INSERT INTO avgg(num, rat)
SELECT 'The average is', AVG(r.rating)
FROM ratings r INNER JOIN movies m
ON m.id = r.movie_id 
WHERE m.year = '2012';
相关问题