본문 바로가기

SQL35

The PADS (Hackerrank) https://www.hackerrank.com/challenges/the-pads/problem?isFullScreen=true The PADS | HackerRank Query the name and abbreviated occupation for each person in OCCUPATIONS. www.hackerrank.com select concat(Name, '(', substring(Occupation, 1,1), ')') from OCCUPATIONS ORDER BY NAME; select CONCAT('There are a total of ', count(occupation), ' ', lower(occupation), 's.') from OCCUPATIONS GROUP BY OCCUPA.. 2022. 2. 21.
같은 종류의 테이블 조인하기(UNION, USING) 결합연산 vs 집합연산 테이블을 합치는 작업을 연산이라고 하며, 결합연산과 집합연산으로 분류할 수 있다. 결합연산은 가로로 join하는 것을 말하며, 집합연산은 세로로 join 하는 것을 말한다. INTERSECT, MINUS, EXCEPT, UNION 두 테이블에서 공통적인 row 만 찾고 싶을 때는 INTERSECT 연산자를, 두 테이블 중 한 테이블에만 존재하는 row를 찾고 싶을 때는 MINUS, EXCEPT 연산자를, 두 테이블을 합치고 싶을 때는 UNION 연산자를 사용하면 된다. 그러나 mysql에서는 버전 8 이후 INTERSECT, MINUS, EXCEPT 연산자를 지원하지 않는다. 그래도 OUTER JOIN, INNER JOIN을 통해 위의 작업들을 수행할 수 있다. 같은 종류의 테이블.. 2021. 7. 22.
JOIN 연습문제 JOIN 연습문제 피자 가게의 메뉴와 원가를 보여주는 pizza_price_cost 테이블이 있다. 각 피자의 판매량 정보가 담긴 sales 테이블이 있다. 두 테이블을 조인해서 각 피자별 판매량을 한꺼번에 보려고 한다. (1) 조인을 통해 생성된 결과 중에서 pizza_price_cost 테이블의 name 컬럼과, sales 테이블의 sales_volume 컬럼을 조회 (2) sales_volume 컬럼에는 '판매량'이라는 alias를, sales_volumne이 NULL인 row의 경우에는 '판매량 정보 없음' 으로 표시 답 SELECT pizza_price_cost.name, coalesce(sales.sales_volume ,'판매량 정보 없음') AS '판매량' FROM pizza_price_c.. 2021. 7. 21.
LEFT / RIGHT OUTER JOIN OUTER JOIN 외부 조인으로, 조인시, 데이터를 다 조회하고 싶은 테이블이 있을 때 사용한다. LEFT OUTER JOIN, RIGHT OUTER JOIN이 있다. LEFT OUTER JOIN 왼쪽의 테이블 값을 다 가져온다. 그리고, 왼쪽의 테이블의 특정 열을 기준으로 값이 같은 오른쪽 테이블의 값을 가져온다. 만약, 매칭되는 값이 없을 경우, 우측 테이블의 값을 NULL로 표기한다. 예시) # item table의 값은 다 가져오고, 왼쪽의 item table의 id가 같은 것 기준으로 # stock table의 값을 맞춘다. SELECT item.id, item.name, stock.item_id, stock.inventory_count FROM item LEFT OUTER JOIN stock.. 2021. 7. 18.