ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 231206 SQL 계속(5)
    패스트캠퍼스 부트캠프 학습일지 2023. 12. 8. 08:02
    
    -- 21. 
    SELECT *
    FROM film;
    -- film_id 17:ALONE TRIP
    
    SELECT actor_id
    FROM film_actor
    WHERE film_id = 17;
    
    SELECT CONCAT(first_name, ' ', last_name) AS 'actor_name'
    FROM actor
    WHERE actor_id IN (SELECT film_actor.actor_id
                       FROM film_actor
                       WHERE film_id = (SELECT film.film_id
                                        FROM film
                                        WHERE title = 'ALONE TRIP'));
    
    -- 22.
    SELECT CONCAT(first_name, ' ', last_name) AS 'Staff Member', SUM(amount) AS 'Total Amount'
    FROM payment p
             JOIN staff s ON p.staff_id = s.staff_id
    GROUP BY s.staff_id;
    -- staff_id, amount, payment_date
    
    SELECT *
    FROM staff;
    
    -- 23.
    SELECT *
    FROM film;
    -- film_id, length
    
    SELECT AVG(film.length)
    FROM film;
    
    SELECT *
    FROM film_category;
    -- film_id >> category_id
    
    SELECT *
    FROM category;
    -- category_id, name(category)
    
    SELECT c.name, AVG(length)
    FROM film f
             JOIN film_category fc ON f.film_id = fc.film_id
             JOIN category c ON fc.category_id = c.category_id
    GROUP BY c.name
    HAVING AVG(length) > (SELECT AVG(film.length) FROM film);
    
    -- 24.
    
    SELECT *
    FROM rental;
    -- category_id, name
    
    SELECT *
    FROM inventory;
    -- inventory_id
    
    SELECT *
    FROM film_category;
    -- inventory_id >> film_id
    
    SELECT *
    FROM category;
    -- film_id >> category_id
    
    SELECT c.name, AVG(TIMESTAMPDIFF(HOUR, rental_date, return_date))
    FROM rental r
             JOIN inventory i ON r.inventory_id = i.inventory_id
             JOIN film_category fc ON fc.film_id = i.film_id
             JOIN category c ON fc.category_id = c.category_id
    GROUP BY 1;
    
    
    -- 25.
    CREATE VIEW top5_genres AS
    SELECT c.name AS genre, SUM(amount) AS 'Total Sales'
    FROM payment p
             JOIN rental r ON p.rental_id = r.rental_id
             JOIN inventory i ON r.inventory_id = i.inventory_id
             JOIN film_category fc ON fc.film_id = i.film_id
             JOIN category c ON fc.category_id = c.category_id
    GROUP BY 1
    ORDER BY 2 DESC
    LIMIT 5;
    
    SELECT c.name AS genre, SUM(amount) AS 'Total Sales'
    FROM payment p
             JOIN rental r ON p.rental_id = r.rental_id
             JOIN inventory i ON r.inventory_id = i.inventory_id
             JOIN film_category fc ON fc.film_id = i.film_id
             JOIN category c ON fc.category_id = c.category_id
    GROUP BY 1
    ORDER BY 2 DESC
    LIMIT 5;
    # rental_id, amount
    
    SELECT *
    FROM rental;
    # rental_id >> inventory_id
    
    SELECT *
    FROM inventory;
    # inventory_id >> film_id
    
    SELECT *
    FROM film_category;
    # film_id >> category_id
    
    SELECT *
    FROM category;
    # category_id, name(category)

     

    계속 사킬라만 두들겨댔더니 슬슬 지겨워지려고 한다. 그래서 제공되었던 강의 내의 다른 db를 다시 복습중이다. 여러번 강의를 들어서 그런지, 이제 조금씩 sql 전반에 걸쳐서 편한 느낌이 든다~!

    '패스트캠퍼스 부트캠프 학습일지' 카테고리의 다른 글

    231208 sql코딩테스트 1차 종료!  (0) 2023.12.08
    231207 SQL계속(6)  (1) 2023.12.08
    231205 SQL계속(4)  (1) 2023.12.08
    231204 sql 계속(3)  (1) 2023.12.08
    231131 sql 계속(2)  (2) 2023.12.08
Designed by Tistory.