- 1.1 SELECT , LIMIT - выбрать 10 записей из таблицы ratings (Для всех дальнейших запросов выбирать по 10 записей, если не указано иное)
- 1.2 WHERE, LIKE - выбрать из таблицы links всё записи, у которых imdbid оканчивается на "42", а поле movieid между 100 и 1000
- 2.1 INNER JOIN выбрать из таблицы links все imdbId, которым ставили рейтинг 5
- 3.1 COUNT() Посчитать число фильмов без оценок
- 3.2 GROUP BY, HAVING вывести top-10 пользователей, у который средний рейтинг выше 3.5
- 4.1 Подзапросы: достать любые 10 imbdId из links у которых средний рейтинг больше 3.5.
- 4.2 Common Table Expressions: посчитать средний рейтинг по пользователям, у которых более 10 оценок. Нужно подсчитать средний рейтинг по все пользователям, которые попали под условие - то есть в ответе должно быть одно число.
Выполненное домашнее задание - это файл формата .sql. Создать такой файл можно в любом текстовом редакторе - под Виндой советую Motepad++, под Linux Sublime. Идеальный вариант - установить среду разработки Pycharm и все файлы открывать и редактировать в ней. Шаблон файла можно найти в директории storage_backend/src/hw1.sql
Вот пример файл, который я создал hw1.sql
SELECT 'ФИО: Капитан Америка'; -- первый запрос SELECT * FROM ratings LIMIT 10; -- второй запрос SELECT userId, COUNT(*) FROM ratings GROUP BY 1 ORDER BY 2 DESC LIMIT 10;
Первый запрос выводит ваше ФИО - его обязательно нужно внести, иначе домашка не будет зачтена.
Символами '--' отделяются коментарии в коде - это "пометки на полях", которые служат тому, чтобы код был более понятным.
Все 4 запроса домашки нужно оформить в этом файле.
Теперь можно запустить .sql файл с домашней работой с помощью psql
psql -U postgres -f hw1.sql
Результат работы скрипта
userid | movieid | rating | timestamp --------+---------+--------+------------ 1 | 110 | 1 | 1425941529 1 | 147 | 4.5 | 1425942435 1 | 858 | 5 | 1425941523 1 | 1221 | 5 | 1425941546 1 | 1246 | 5 | 1425941556 1 | 1968 | 4 | 1425942148 1 | 2762 | 4.5 | 1425941300 1 | 2918 | 5 | 1425941593 1 | 2959 | 4 | 1425941601 1 | 4226 | 4 | 1425942228 (10 rows) userid | count --------+------- 45811 | 36552 8659 | 18558 270123 | 15276 179792 | 15030 228291 | 14820 243443 | 12640 98415 | 12188 229879 | 12048 98787 | 11628 172224 | 11402 (10 rows)
В качестве ответа нужно прислать файл hw1.sql (лучше ссылку на github) и скриншот с экраном, где исполняются запросы.