-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHT6
More file actions
45 lines (39 loc) · 1.75 KB
/
HT6
File metadata and controls
45 lines (39 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Задание 1 "Создать и заполнить таблицы лайков и постов".
INSERT INTO posts
SELECT
id,
FLOOR(1 + (RAND() * 100)),
FLOOR(1 + (RAND() * 100)),
'any text',
'some text',
FLOOR(1 + (RAND() * 4)),
TRUE,
FALSE,
CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP
FROM media;
INSERT INTO likes
SELECT
id,
FLOOR(1 + (RAND() * 100)),
FLOOR(1 + (RAND() * 100)),
FLOOR(1 + (RAND() * 4)),
CURRENT_TIMESTAMP
FROM messages;
# Задание 2 "Создать все необходимые внешние ключи и диаграмму отношений."
https://prnt.sc/10lic3n
#Задание 3 "Определить кто больше поставил лайков (всего) - мужчины или женщины?"
SELECT (SELECT gender FROM vk5.profiles WHERE user_id=likes.user_id)
AS `G`, count(*) AS `count`
FROM likes GROUP BY `G`
ORDER BY `count` DESC LIMIT 1;
# Решение задание 4! "Подсчитать общее количество лайков, которые получили 10 самых молодых пользователей"
SELECT count(target_id)
FROM likes WHERE user_id in
(SELECT * FROM (SELECT user_id FROM profiles ORDER BY birthday DESC LIMIT 10) AS total);
#5. Найти 10 пользователей, которые проявляют наименьшую активность в использовании социальной сети.
SELECT `last_name`, `first_name`,
/*(SELECT count(*) FROM media where media.user_id = users.id)*/ +
(SELECT count(*) FROM messages WHERE messages.from_user_id = users.id) +
(SELECT count(*) FROM likes WHERE likes.user_id=users.id) AS activity
FROM users ORDER BY activity LIMIT 10;