Описание
Ваш босс хочет знать, какие ключевые слова в тренде на каждой конференции. Для этого ему нужно представление, в котором для каждой конференции записаны три самых часто встречающихся ключевых слова в статьях, поданных на эту конференцию.
Исходники для генерации схемы и данных тут: hw04.zip
Схема и данные
В приложенном архиве находятся файл со схемой БД и скрипт на Питоне, заполняющий таблицы данными
psql -h localhost -U postgres < 01_gen_schema.sql
python 02_gen_data.py
Схема БД
В базе данных есть таблицы Conference, Paper, Keyword и связи многие-ко-многим PaperConference и PaperKeyword. Смысл таблиц и их атрибутов, полагаю, ясен из их названий.
Задание
В результате должно получиться представление со схемой:
conference TEXT, keyword TEXT, count INT
Запись в представлении означает, что в статьях, поданных на конференцию
conference
ключевое слово keyword
упоминается count
раз. В представление должны попасть для каждой конференции ключевые слова с наибольшим значением count, в количестве не более трех. Например, из следующих записейConf1 KW1 5
Conf1 KW2 8
Conf1 KW3 1
Conf1 KW4 6
в представление должны попасть первая, вторая и четвертая. Если есть несколько ключевых слов с одинаковым значением count и в представление нужно включить только часть из них, то отсортируйте эти ключевые слова лексикографически и возьмите первые. Пример:
Conf1 KW2 8
Conf1 KW4 6
Conf1 KW1 5
-----------
Conf1 KW3 5
Задание можно решить многими способами. Как-то явно фантазию ограничивать не будем, но все же постарайтесь не увлекаться. Вы написали и забыли, а проверяющим читать. Постарайтесь написать комментарии ко всем нетривиальным решениям.
Комментариев нет:
Отправить комментарий