Skip to content

Instantly share code, notes, and snippets.

@eduardogpg
Last active April 8, 2025 22:46
Show Gist options
  • Save eduardogpg/cc23f4580fef7c956e8e9e5785a3f3da to your computer and use it in GitHub Desktop.
Save eduardogpg/cc23f4580fef7c956e8e9e5785a3f3da to your computer and use it in GitHub Desktop.
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE posts (
id INT PRIMARY KEY,
user_id INT,
content TEXT,
created_at DATETIME
);
CREATE TABLE videos (
id INT PRIMARY KEY,
user_id INT,
video_url VARCHAR(255),
created_at DATETIME
);
CREATE TABLE photos (
id INT PRIMARY KEY,
user_id INT,
image_url VARCHAR(255),
created_at DATETIME
);
CREATE TABLE comments (
id INT PRIMARY KEY,
user_id INT,
content TEXT,
content_id INT,
content_type VARCHAR(20), -- 'post', 'photo', 'video'
created_at DATETIME
);
CREATE TABLE likes (
id INT PRIMARY KEY,
user_id INT,
content_id INT,
content_type VARCHAR(20), -- 'post', 'photo', 'video'
created_at DATETIME
);
INSERT INTO users (id, name) VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Clara'),
(4, 'David'),
(5, 'Eva'),
(6, 'Frank'),
(7, 'Grace'),
(8, 'Hannah'),
(9, 'Ivan'),
(10, 'Julia'),
(11, 'Kevin'),
(12, 'Laura'),
(13, 'Mike'),
(14, 'Nina'),
(15, 'Oscar'),
(16, 'Paul'),
(17, 'Quinn'),
(18, 'Rachel'),
(19, 'Sam'),
(20, 'Tina');
INSERT INTO posts (id, user_id, content, created_at) VALUES
(1, 1, 'Learning SQL is fun!', '2024-01-01 10:00:00'),
(2, 2, 'Just published a new blog post.', '2024-01-02 12:30:00'),
(3, 3, 'What’s your favorite database?', '2024-01-03 15:00:00'),
(4, 6, 'Exploring MySQL joins today.', '2024-01-11 10:00:00'),
(5, 7, 'Check out my latest article on indexes.', '2024-01-12 11:15:00'),
(6, 8, 'Just finished a great book on SQL.', '2024-01-13 14:00:00'),
(7, 9, 'SQL performance tuning tips.', '2024-01-14 16:00:00'),
(8, 10, 'Data normalization is key!', '2024-01-15 18:00:00'),
(9, 11, 'Database design principles.', '2024-01-16 09:30:00'),
(10, 12, 'Understanding transactions in SQL.', '2024-01-17 11:45:00'),
(11, 13, 'The importance of backups.', '2024-01-18 14:00:00'),
(12, 14, 'Exploring NoSQL databases.', '2024-01-19 16:15:00'),
(13, 15, 'Data warehousing concepts.', '2024-01-20 18:30:00'),
(14, 16, 'Big data and SQL.', '2024-01-21 10:45:00'),
(15, 17, 'SQL vs NoSQL debate.', '2024-01-22 12:00:00'),
(16, 18, 'Data mining techniques.', '2024-01-23 14:30:00'),
(17, 19, 'Cloud databases are the future.', '2024-01-24 16:45:00'),
(18, 20, 'SQL certifications worth pursuing.', '2024-01-25 09:00:00');
INSERT INTO photos (id, user_id, image_url, created_at) VALUES
(1, 1, 'photo1.jpg', '2024-01-05 08:00:00'),
(2, 4, 'photo2.jpg', '2024-01-06 09:00:00'),
(3, 5, 'photo3.jpg', '2024-01-07 11:00:00'),
(4, 6, 'photo4.jpg', '2024-01-12 12:00:00'),
(5, 8, 'photo5.jpg', '2024-01-13 13:30:00'),
(6, 9, 'photo6.jpg', '2024-01-14 14:30:00'),
(7, 10, 'photo7.jpg', '2024-01-15 15:45:00'),
(8, 11, 'photo8.jpg', '2024-01-16 17:00:00'),
(9, 12, 'photo9.jpg', '2024-01-17 18:15:00'),
(10, 13, 'photo10.jpg', '2024-01-18 19:30:00'),
(11, 14, 'photo11.jpg', '2024-01-19 20:45:00'),
(12, 15, 'photo12.jpg', '2024-01-20 21:00:00'),
(13, 16, 'photo13.jpg', '2024-01-21 22:15:00'),
(14, 17, 'photo14.jpg', '2024-01-22 23:30:00'),
(15, 18, 'photo15.jpg', '2024-01-23 08:45:00'),
(16, 19, 'photo16.jpg', '2024-01-24 09:00:00'),
(17, 20, 'photo17.jpg', '2024-01-25 10:15:00'),
(18, 1, 'photo18.jpg', '2024-01-26 11:30:00'),
(19, 2, 'photo19.jpg', '2024-01-27 12:45:00'),
(20, 3, 'photo20.jpg', '2024-01-28 14:00:00');
INSERT INTO videos (id, user_id, video_url, created_at) VALUES
(1, 2, 'video1.mp4', '2024-01-08 13:00:00'),
(2, 3, 'video2.mp4', '2024-01-09 14:00:00'),
(3, 5, 'video3.mp4', '2024-01-10 16:00:00'),
(4, 9, 'video4.mp4', '2024-01-14 14:00:00'),
(5, 10, 'video5.mp4', '2024-01-15 15:30:00'),
(6, 11, 'video6.mp4', '2024-01-16 17:00:00'),
(7, 12, 'video7.mp4', '2024-01-17 18:30:00'),
(8, 13, 'video8.mp4', '2024-01-18 19:45:00'),
(9, 14, 'video9.mp4', '2024-01-19 20:15:00'),
(10, 15, 'video10.mp4', '2024-01-20 21:30:00'),
(11, 16, 'video11.mp4', '2024-01-21 22:45:00'),
(12, 17, 'video12.mp4', '2024-01-22 23:00:00'),
(13, 18, 'video13.mp4', '2024-01-23 08:15:00'),
(14, 19, 'video14.mp4', '2024-01-24 09:30:00'),
(15, 20, 'video15.mp4', '2024-01-25 10:45:00'),
(16, 1, 'video16.mp4', '2024-01-26 11:00:00'),
(17, 2, 'video17.mp4', '2024-01-27 12:15:00'),
(18, 3, 'video18.mp4', '2024-01-28 13:30:00'),
(19, 4, 'video19.mp4', '2024-01-29 14:45:00'),
(20, 5, 'video20.mp4', '2024-01-30 16:00:00');
INSERT INTO comments (id, user_id, content, content_id, content_type, created_at) VALUES
(1, 3, 'Awesome post!', 1, 'post', '2024-01-01 11:00:00'),
(2, 4, 'Nice explanation!', 2, 'post', '2024-01-02 13:00:00'),
(3, 2, 'Love this photo!', 1, 'photo', '2024-01-05 09:00:00'),
(4, 1, 'Great video!', 1, 'video', '2024-01-08 14:00:00'),
(5, 5, 'Awesome!', 2, 'video', '2024-01-09 15:30:00'),
(6, 1, 'Really helpful!', 3, 'post', '2024-01-03 16:00:00'),
(7, 3, 'This is awesome!', 2, 'photo', '2024-01-06 10:00:00'),
(8, 6, 'This is gold!', 3, 'video', '2024-01-10 10:30:00'),
(9, 7, 'Very helpful.', 4, 'post', '2024-01-11 11:30:00'),
(10, 8, 'Love this angle!', 4, 'photo', '2024-01-12 12:30:00'),
(11, 9, 'Brilliant session!', 5, 'video', '2024-01-14 14:30:00'),
(12, 10, 'Amazing tips.', 5, 'video', '2024-01-15 16:00:00'),
(13, 6, 'Nice!', 5, 'video', '2024-01-15 16:10:00'),
(14, 11, 'Great insights!', 6, 'post', '2024-01-16 17:30:00'),
(15, 12, 'Very informative.', 7, 'video', '2024-01-17 18:45:00'),
(16, 13, 'I learned a lot.', 8, 'photo', '2024-01-18 19:00:00'),
(17, 14, 'This is fantastic!', 9, 'video', '2024-01-19 20:15:00'),
(18, 15, 'Incredible content!', 10, 'post', '2024-01-20 21:30:00'),
(19, 16, 'So useful!', 11, 'photo', '2024-01-21 22:45:00'),
(20, 17, 'Great work!', 12, 'video', '2024-01-22 23:00:00');
INSERT INTO likes (id, user_id, content_id, content_type, created_at) VALUES
(1, 2, 1, 'post', '2024-01-01 11:30:00'),
(2, 3, 2, 'post', '2024-01-02 14:00:00'),
(3, 1, 1, 'photo', '2024-01-05 10:00:00'),
(4, 5, 3, 'photo', '2024-01-07 12:00:00'),
(5, 4, 1, 'video', '2024-01-08 15:00:00'),
(6, 1, 2, 'video', '2024-01-09 16:00:00'),
(7, 2, 2, 'video', '2024-01-09 17:00:00'),
(8, 6, 3, 'video', '2024-01-10 11:00:00'),
(9, 6, 5, 'video', '2024-01-15 16:30:00'),
(10, 7, 4, 'post', '2024-01-11 12:00:00'),
(11, 8, 4, 'photo', '2024-01-12 13:00:00'),
(12, 9, 5, 'video', '2024-01-15 17:00:00'),
(13, 10, 5, 'video', '2024-01-15 17:30:00'),
(14, 11, 6, 'post', '2024-01-16 18:00:00'),
(15, 12, 7, 'video', '2024-01-17 19:00:00'),
(16, 13, 8, 'photo', '2024-01-18 20:00:00'),
(17, 14, 9, 'video', '2024-01-19 21:00:00'),
(18, 15, 10, 'post', '2024-01-20 22:00:00'),
(19, 16, 11, 'photo', '2024-01-21 23:00:00'),
(20, 17, 12, 'video', '2024-01-22 08:00:00');
-- 1.- Mostrar el nombre de los 5 usuarios con más comentarios en videos.
-- 2.- Mostrar el nombre de los usuarios quienes hayan dejado un like a videos, pero nunca hayan comentado en ellos.
-- 3.- Mostrar el nombre de los usuarios y el total de likes que han dejado en videos. Ordenar de mayor a menor.
-- 4.- Utilizando el set anterior, mostrar el mensaje "Fan" si el total de likes es mayor a 5, "Regular" si es entre 3 y 5, y "Poco fan" si es menor a 3.
-- 5.- Mostrar el nombre del usuario y el video_url que más le ha gustado a cada usuario. En caso el usuario no haya dado like a un video, mostrar "No video liked".
-- 6.- Listar el nombre de los usuarios y en 3 nuevas columnas el total de likes, comentarios y posts que han realizado.
-- 7.- listar todos los videos, y en una nueva columna 'Popular' si este posee más de 2 likes o 'Poco popular' si tiene menos de 2 likes.
-- 8.- listar todos los usuarios, y basados en sus comentarios etiquetalos como 'Fan' si han comentado más de 5 veces, 'Regular' si han comentado entre 3 y 5 veces, y 'Poco fan' si han comentado menos de 3 veces.
-- 9.- Listar la cantidad de likes y comentarios que ha dejado cada usuario.
-- 10.- Elimina todas las photos que no tengan likes.
-- 11.- Cuenta cuantos commentarios se han dejaddo por cada tipo de contenido (post, photo, video).
-- 12- Lista todos los tipos de contenido y muestra el total de likes y comentarios que han recibido.
-- 13.- Lista todos los usuarios que hayan interactuado con los 3 tipos de contenido.
-- 14.- Lista todos los contenidos que tengan más likes que comentarios.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment