create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Найти имена всех студентов кто дружит с кем-то по имени Gabriel.

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Для всех студентов, кому понравился кто-то на 2 или более классов младше, чем он вывести имя этого студента и класс, а так же имя и класс студента который ему нравится.

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Для каждой пары студентов, которые нравятся друг другу взаимно вывести имя и класс обоих студентов. Включать каждую пару только 1 раз с именами в алфавитном порядке.

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Найти всех студентов, которым никто не нравится и которые никому не нравятся одновременно, вывести их имя и класс. Отсортировать по классу, затем по имени в классе.

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Для каждой ситуации, когда студенту A нравится студент B, но B никто не нравится, вывести имена и классы A и B.

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Найти имена и классы учеников, которые имеют друзей только в том же классе. Вернуть результат, отсортированный по классу, затем имени в классе.

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Для каждого студента A, которому нравится студент B, и они не друзья, найти есть ли у них общий друг. Для каждой такой тройки вернуть имя и класс A, B, и C.

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Найти разницу между числом учащихся и числом различных имен.

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Найти имя и класс студентов, которые нравятся более чем 1 другому студенту.

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Если два школьника - А и В - друзья и А нравится В, но не наоборот, то удалите соответствующую строку из Likes.

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Для всех случаев, когда А нравится В, а В нравится С - получите имена и классы А, В и С.

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Найдите имена и классы студентов(-а), у которых все друзья в других классах. Получите имена и классы таких студентов. Отсортировать сначала по классу, затем по имени.

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Каково среднее число друзей у студента? (Вы должны получить одно число).

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Найдите имена и классы студентов(-а), которые являются друзьями Cassandra, либо друзьями друзей Cassandra. Только не считайте саму Cassandra. Отсортировать сначала по классу, затем по имени.

create table highschooler (id serial primary key, name text not null, grade smallint not null);
comment on table highschooler is 'Студент с уникальным ID. Имя и Класс.';

create table friend (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table friend is 'Студент с id1 друг студента с id2. Дружба взаимная, если есть запись (123, 456), то есть и (456, 123).';

create table likes (id1 int not null references highschooler (id), id2 int not null references highschooler (id));
comment on table likes is 'Студенту с id1 нравится студент с id2. Симпатии не взаимны, если есть запись (123, 456), то необязательно есть (456, 123).';
Найдите имена и классы студентов(-а) с наибольшим количеством друзей. Отсортировать сначала по классу, затем по имени.