-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstgram_analysis.sql
More file actions
94 lines (74 loc) · 2.03 KB
/
instgram_analysis.sql
File metadata and controls
94 lines (74 loc) · 2.03 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
USE ig_clone;
-- Loyal User
SELECT * FROM users;
DESCRIBE users;
SELECT *
FROM users
ORDER BY created_at
LIMIT 5;
-- Inactive user
SELECT u.id,u.username,COUNT(p.user_id) AS "Post_count"
FROM photos P
RIGHT JOIN users u
ON u.id = p.user_id
GROUP BY u.id
HAVING COUNT(p.user_id) = 0;
-- contest Winner
-- SELECT u.username,COUNT(l.photo_id) AS "Total_Like"
-- FROM users u
-- INNER JOIN photos
-- ON u.id = p.user_id
-- INNER JOIN likes l
-- ON p.id = l.photo_id
-- WHERE COUNT(l.photo_id) = (SELECT MAX(COUNT(photo_id)) FROM likes);
SELECT id,username
FROM users
WHERE id = (SELECT user_id
FROM photos
WHERE id = (SELECT photo_id
FROM likes
GROUP BY photo_id
ORDER BY COUNT(photo_id) DESC
LIMIT 1));
SELECT
username,photos.image_url,count(likes.user_id) as "totallike"
FROM photos
INNER JOIN likes
ON likes.photo_id = photos.id
INNER JOIN users
ON photos.user_id = users.id
GROUP BY photos.id
ORDER BY totallike DESC
LIMIT 1;
-- Most Hashtage
SELECT tags.tag_name,COUNT(photo_tags.tag_id) "Frequency"
FROM tags
INNER JOIN
photo_tags
ON tags.id = photo_tags.tag_id
GROUP BY tags.tag_name
ORDER BY Frequency DESC
LIMIT 5;
SELECT DAYNAME(created_at) "Days",COUNT(DAYNAME(created_at)) "Frequency"
FROM users
GROUP BY Days
ORDER BY Frequency DESC
LIMIT 2;
-- user engagement
SELECT (SELECT Count(id)
FROM photos) / (SELECT Count(DISTINCT user_id)
FROM photos) AS Average_posts_per_User,
(SELECT Count(id)
FROM photos) / (SELECT Count(id)
FROM users) AS Ratio_of_Total_Posts_to_Total_Users;
SELECT user_id,COUNT(*) AS num_like
FROM likes
GROUP BY user_id
HAVING num_like = (SELECT COUNT(*) FROM photos);
SELECT COUNT(image_url) AS "Total_post" FROM photos;
SELECT u.username,COUNT(*) AS num_like
FROM users u
JOIN likes l
ON u.id = l.user_id
GROUP BY u.id
HAVING num_like = (SELECT COUNT(*) FROM photos);