Skip to content

Latest commit

 

History

History
80 lines (61 loc) · 3.89 KB

hw2.md

File metadata and controls

80 lines (61 loc) · 3.89 KB

Домашнее задание №2

1. Простые выборки

  • 1.1 SELECT , LIMIT - выбрать 10 записей из таблицы ratings (Для всех дальнейших запросов выбирать по 10 записей, если не указано иное)
  • 1.2 WHERE, LIKE - выбрать из таблицы links всё записи, у которых imdbid оканчивается на "42", а поле movieid между 100 и 1000

2. Сложные выборки: JOIN

  • 2.1 INNER JOIN выбрать из таблицы links все imdbId, которым ставили рейтинг 5

3. Аггрегация данных: базовые статистики

  • 3.1 COUNT() Посчитать число фильмов без оценок
  • 3.2 GROUP BY, HAVING вывести top-10 пользователей, у который средний рейтинг выше 3.5

4. Иерархические запросы

  • 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) и скриншот с экраном, где исполняются запросы.