diff --git a/lesson06/task1.sql b/lesson06/task1.sql new file mode 100644 index 0000000..f426217 --- /dev/null +++ b/lesson06/task1.sql @@ -0,0 +1,17 @@ +use vk; + +SET @u_id = 1; #Задаем ID исходного пользователя +#select @u_id; + +select u.id, u.firstname, u.lastname, C +from (select + IF(from_user_id = @u_id,to_user_id,from_user_id) as boltun, #Получаем ID собеседника + id, + Count(id) as C + from messages + where from_user_id = @u_id or to_user_id = @u_id + group by boltun + having C) as a, users as u +where + a.id = u.id +limit 1 diff --git a/lesson06/task2.sql b/lesson06/task2.sql new file mode 100644 index 0000000..38763ac --- /dev/null +++ b/lesson06/task2.sql @@ -0,0 +1,8 @@ +use vk; + +select Count(*) +from users as u,media as m,likes as l,profiles as p +where u.id = m.user_id and + m.id = l.media_id and + u.id = p.user_id and + timestampdiff(year,p.birthday,now()) < 10 \ No newline at end of file diff --git a/lesson06/task3.sql b/lesson06/task3.sql new file mode 100644 index 0000000..1f8b00c --- /dev/null +++ b/lesson06/task3.sql @@ -0,0 +1,23 @@ +use vk; + +select IF(gender = "f","female","male") as gender_win +from + (select p.gender,Count(*) as count_likes + from likes as l + left join + users as u on l.user_id = u.id + inner join + profiles as p on u.id = p.user_id + where + p.gender = "f" + union + select p.gender,Count(*) + from likes as l + left join + users as u on l.user_id = u.id + inner join + profiles as p on u.id = p.user_id + where + p.gender = "m") as res +order by count_likes desc +limit 1 \ No newline at end of file