Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ПОМОГИТЕ СОЗДАТЬ ЗАПРОС В SQL

Анна Ярославцева Знаток (405), на голосовании 7 месяцев назад
Создайте запрос к таблице movies который выбирает все фильмы выпущеные в 1990х годах при условии, что в поле title текст не начинается с The и рейтинг не равен 9
Для решения данной задачи необходимо использовать NOT LIKE и BETWEEN



мое решение
SELECT id, title,release_year, genre, rating
FROM movies
WHERE title NOT LIKE 'The%' and release_year between 1990 and 2000
BETWEEN rating <> 9
Голосование за лучший ответ
Беспрекословный Эксперт Мыслитель (6516) 8 месяцев назад
Ваш запрос почти правильный, но содержит небольшую ошибку в использовании условия для поля rating. Вы используете ключевое слово BETWEEN перед rating <> 9, что является синтаксической ошибкой. Ключевое слово BETWEEN используется для указания диапазона значений, а не для сравнения на неравенство. Для того чтобы указать, что рейтинг не должен быть равен 9, достаточно просто использовать оператор <> (не равно) без BETWEEN. Кроме того, вам нужно выбрать фильмы, выпущенные в 1990-х годах, то есть с 1990 по 1999 год включительно, а не до 2000 года. Вот исправленный вариант запроса:
 SELECT id, title, release_year, genre, rating 
FROM movies
WHERE title NOT LIKE 'The%'
AND release_year BETWEEN 1990 AND 1999
AND rating <> 9;
Таким образом, ваш запрос выберет все фильмы из таблицы movies, выпущенные с 1990 по 1999 год включительно, у которых в названии нет слова, начинающегося на "The", и рейтинг не равен 9.
Анна ЯрославцеваЗнаток (405) 8 месяцев назад
благодарю
Татьяна Просветленный (36377) 8 месяцев назад
 SELECT id, title, release_year, genre, rating 
FROM movies
WHERE title NOT LIKE 'The%'
AND release_year BETWEEN 1990 AND 1999
AND rating <> 9;
Объяснение:
  1. WHERE title NOT LIKE 'The%' - эта часть правильная, она выбирает все фильмы, название которых не начинается с "The".
  2. release_year BETWEEN 1990 AND 1999 - здесь мы используем BETWEEN для выбора фильмов, выпущенных в 1990-х годах. Обратите внимание, что диапазон должен быть от 1990 до 1999, а не до 2000, так как 2000 год уже относится к следующему десятилетию.
  3. AND rating <> 9 - эта часть также правильная, она исключает фильмы с рейтингом 9.
Анна ЯрославцеваЗнаток (405) 8 месяцев назад
благодарю
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (263818) 8 месяцев назад
Создаем таблицу и заполняем
 CREATE TABLE a_movies ( 
id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
release_year INT,
genre VARCHAR(100),
rating DECIMAL(3, 1)
);

INSERT INTO a_movies (title, release_year, genre, rating) VALUES
('The Shawshank Redemption', 1994, 'Drama', 9.3),
('The Godfather', 1972, 'Crime', 9.2),
('The Dark Knight', 2008, 'Action', 9.0),
('Schindler''s List', 1993, 'Biography', 8.9),
('Pulp Fiction', 1994, 'Crime', 8.9),
('The Lord of the Rings: The Return of the King', 2003, 'Adventure', 8.9),
('Forrest Gump', 1994, 'Drama', 8.8),
('Inception', 2010, 'Action', 8.8),
('Fight Club', 1999, 'Drama', 8.8),
('The Matrix', 1999, 'Action', 8.7);
Делаем запрос:
 SELECT * 
FROM a_movies
WHERE release_year BETWEEN 1990 AND 1999
AND title NOT LIKE 'The%'
AND rating <> 9;
Анна ЯрославцеваЗнаток (405) 8 месяцев назад
благодарю
Похожие вопросы