241109_TIL

J Lee·2024년 11월 9일
0

아무리 사소하더라도 배움이 없는 날은 없다.

SQL 문제풀이 복습


Leetcode

문제 링크
group_concat과 concat을 조합해서 쓰는 문제.
power와 factor의 부호에 따라
경우의 수만 case when으로 잘 커버해 주면
그 뒤부터는 크게 어렵지 않다.

SELECT CONCAT(GROUP_CONCAT(term ORDER BY POWER DESC SEPARATOR ''), '=0') AS
       "equation"
FROM   (SELECT power,
               factor,
               CASE
                 WHEN power = 0
                      AND factor > 0 THEN CONCAT('+', factor)
                 WHEN power = 0
                      AND factor < 0 THEN factor
                 WHEN power = 1
                      AND factor > 0 THEN CONCAT('+', factor, 'X')
                 WHEN power = 1
                      AND factor < 0 THEN CONCAT(factor, 'X')
                 WHEN power > 1
                      AND factor > 0 THEN CONCAT('+', factor, 'X', '^', power)
                 WHEN power > 1
                      AND factor < 0 THEN CONCAT(factor, 'X', '^', power)
               END AS "term"
        FROM   Terms) a;

문제 링크

SELECT b.bus_id,
       COUNT(passenger_id) AS "passengers_cnt"
FROM   Buses b
       LEFT JOIN (SELECT passenger_id,
                         MIN(b.arrival_time) AS "min_bus"
                  FROM   Buses b
                         JOIN Passengers p
                           ON b.arrival_time >= p.arrival_time
                  GROUP  BY 1) a
              ON b.arrival_time = a.min_bus
GROUP  BY 1
ORDER  BY 1;

문제 링크
와 이건 어렵다;
풀었던 기록이 없는 걸로 봐선 처음 업데이트된 문제인 것 같은데,
얘는 내일이나 다음 주에 다시 풀어봐야겠네.

profile
기본기를 소홀히 하지 말자

0개의 댓글

관련 채용 정보