2021-05-20 38일차

2021. 5. 20. 22:10공부 기록

  • 도메인 구매하기
  • SQL 문제 풀어보기
  • SQL 프로그래머스 GROUP BY 까지 풀어보기
  • PYTHON 프로그래머스 알고리즘 2문제 풀기

자주하는 실수

  • Replit 에서 작성한 파이썬 코드를 프로그래머스에 복붙하면 탭 차이가 나서 (프로그래머스는 1탭 4스페, 리플은 1탭 2스페) 실행이안되는데 맨날 탭잘못쳐서 리플에서는 되는거를 오류나게한다

내가 모르는 것

  • 서브쿼리 뒤에 꼭 AS(알리아스)가 들어가야 하는 이유
  • SQL 재귀가 어떤원리로 돌아가는지 모르겠다

느낀점

  • 알고리즘 문제를 더 많이 풀어봐야겠다 아직 잘 안풀린다.
  • 프로그래머스 SQL을 풀면서 재귀함수를 만났다 SQL 재귀는 처음봐서 복붙해서 풀었는데 어떤 원리로 재귀가 돌아가는건지 모르겠다

SQL

  • GROUP BY
    • SELECT 문에서 count, max, min, sum 등 그룹함수를 사용하면 결과가 그룹화되어 하나로 나온다 그 경우 GROUP BY (조건) 으로 묶어서 출력할 수 있다.
    • EX) GROUP BY name : name값이 같은것 끼리 그룹화되어 나온다
  • WHERE, HAVING
    • WHERE 는 GROUP 연산이 되기 전에 하는 필터링이다 TABLE에 들어있는 칼럼을 필터링 할때 쓴다
    • HAVING 은 GROUP 연산이 된 후에 하는 필터링이다 칼럼들을 그룹화 해서 나온 결과를 필터링 할때 쓴다
  • 서브쿼리
    • 쿼리문 안에 쿼리문이 들어있는 형태
    • 쿼리의 결과는 테이블이 될수 있다
    • SELECT * FROM (
          SELECT
          D.name 부서명,
          GROUP_CONCAT(E.name) 사원리스트,
          TRUNCATE(AVG(E.salary), 0) 평균연봉,
          MAX(E.salary) 최고연봉,
          MIN(E.salary) 최소연봉,
          COUNT(E.id) 사원수
          FROM emp AS E
          INNER JOIN dept AS D
          ON D.id = E.deptId
          GROUP BY D.id
      ) AS deptemp
      WHERE `평균연봉` >= 5000;

'공부 기록' 카테고리의 다른 글

2021-05-22 40일차  (0) 2021.05.24
2021-05-21 39일차  (0) 2021.05.21
2021-05-18 36일차  (0) 2021.05.18
2021-05-17 35일차  (0) 2021.05.17
2021-05-16 34일차  (0) 2021.05.16