Instagram User Analytics
Project Description: In order to give the marketing and product teams information, this project will
analyze Instagram user engagement and behavior. The objective is to keep track of how users engage
with the platform and use that data to guide decisions regarding future advertising campaigns, new
features, and the user experience as a whole.
Approach: Using the provided SQL instructions, I will first build a database of information about
Instagram users to finish this project. Then, in order to respond to the management team's questions, I
will utilize SQL to perform analysis on the data. The most popular hashtags on the network will also be
revealed, along with the usernames of the platform's oldest users and those who have never
contributed a photo. The average number of posts made by a user, for example, will be one of the user
engagement insights I offer. I will also point out any fraudulent or automated accounts on the platform.
Tech-Stack Used: I will be using MYSQL to perform the data analysis and creating a report in PDF/PPT
format to present to the leadership team.
Insights: I learned more about Instagram user engagement and behavior thanks to this assignment. I can
tell who is the oldest user, who has never posted a photo, and who won a competition. Along with
providing insights on user involvement, such as the typical amount of posts per user, I also uncovered
the most popular hashtags on the platform. I was also able to recognize automated accounts on the
network.
Result: I have been able to gain insightful information from this project that will help the marketing and
product teams make decisions. They will be able to better understand how consumers interact with the
platform thanks to the data I evaluated, which will also help them expand their customer base.
All SQL Queries to fetch the required information from the provided dataset
Finding 5 oldest users
select user_id, count(photo_id) as likes from likes group by user_id order by likes desc;
Identify Inactive Users (users with no photos)
SELECT u.username FROM users u
LEFT JOIN photos p ON u.id = p.user_id
GROUP BY u.id
HAVING COUNT(p.id) = 0 AND u.created_at >= MIN(p.created_dat);
The five most popular hashtags
select tag_name, count(distinct photo_id) as Number_of_photos from tags join photo_tags
on tags.id = photo_tags.tag_id
group by tag_name
order by Number_of_photos desc
limit 5;
Most Popular Registration Date:
select
DAYOFWEEK(created_at) as Day_of_Week,
count(distinct id) as number_of_accounts_created
from users
group by
DAYOFWEEK(created_at)
order by 2 desc;
User with most liked picture
select username, photos.id, photos.image_url, count(likes.user_id) as Likes
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 Likes desc
Limit 1;
Number of times an average user posts on Instagram. Also the total number of
photos on Instagram/total number of users:
WITH photos_count AS (SELECT user_id, COUNT(id) as num_posts FROM photos GROUP BY user_id)
SELECT AVG(num_posts) as avg_count_of_posts, COUNT(DISTINCT user_id) as total_users, COUNT(*) as
total_photos FROM photos_count;
Suspicious users who have liked every single photo
select count(photo_id) as number_of_photos_liked_by_User,
user_id
from likes
group by user_id
having number_of_photos_liked_by_User = (SELECT Count(*)
FROM photos);