sql - 如何指定我的条件是数字。sqlite3
问题描述
我在这里有这个查询,它应该从一个名为 rating 的表中计算平均收视率,该表有一个 movie_id 和一个 rating 列。但我必须计算 2012 年上映的电影的平均值。我必须计算我选择的表名中的平均值,所以我选择了 avgg 有 num 的文本,我将在其中写入任何内容,而 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)
解决方案
问题是您使用的语法。您可以在单个语句
中插入包含列的行num
:rat
INSERT
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';
推荐阅读
- java - java StringIndexOutOfBoundsException: -1
- sql-server - 如何从 SQL Server 数据库中保存存档
- r - 搜索和使用数据库
- html - Bootstrap - 防止 div 由于更大的文本而扩展
- html - `\n` 不在内部创建新行
标签
- vbscript - 有没有办法从命令行在 EA 中运行 VbScript?
- excel - 合并多个单元格的文本
- reactjs - 为什么我在下面的代码中将 ID 的值设为未定义?反应
- ios - iOS:UICollectionView 的辅助功能无法正常工作
- python - Python搜索多个值存在于列表列表中