본문 바로가기
TIL & WIL

[TIL] #4. 230917

by mmm- 2023. 9. 17.

어제 목표 & 오늘 완료한 한 일

  • SQL 4주차 수강 및 정리

 
내일 목표

  • 웹개발 A to Z 3-5주차 복습 & 응용
  • SQL 1-3주차 복습

 

 

배운 내용 정리

Subquery - 편하고 간단하게 원하는 데이터를 얻기 위해 사용되는 기능으로, 쿼리 안에 쿼리가 있는 것 (where, select, from 등에 들어감)

with - 반복되는 서브쿼리를 하나의 with절 블록으로 만들어 사용.

SUBSTRING_INDX - 문자열 쪼갤 때 사용

SUBSTRING - 문자열 일부만 출력할 때 사용

Case - 조건에 따라 다른 결과를 나타낼 때 사용

 

 

[SQL] 4주차 (Subquery, with ...)

1. Subquery Subquery : 쿼리 안의 쿼리. 더 편하고 간단하게 원하는 데이터를 얻기 위해 사용되는 기능 select user_id, name, email from users where user_id in ( select user_id from orders where payment_method = 'kakaopay' ) →

mstudy-recode.tistory.com

 

 

발생한 문제와 해결

select checkin_id,
	   course_id, 
	   user_id,
	   likes,
	   (
		select round(avg(likes),1) from checkins
		group by course_id
	   ) as course_avg
from  checkins c

위와 같이 작성했더니 오류가 발생했다.

SQL Error [1242] [21000]: Subquery returns more than 1 row

한 개 이상의 row가 반환되었다는 것이다.

checkins가 2번 나오는게 문제라는 생각이 들어 앞에서 실행시켜봤던 비슷한 형태의 코드를 참고하였다.

where course_id = c.course_id 를 추가했더니 해결되었다.

 

생각해본 결과,

course_id가 2개인 것 때문에 발생했던 것인데 상위쿼리와 하위쿼리의 course_id가 같으면 이라는 부분을 추가해 문제가 해결된 것으로 보인다.

 

 

느낀점

2주차까지는 할만하다는 생각이 들었고 3주차는 조금 어려움이 있었지만 괜찮았다. 그런데 4주차는 확 어려워진 느낌이 든다.. 그만큼 다른 주차보다 실습을 더 많이, 여러 번 해볼 필요가 있을 것 같다.

'TIL & WIL' 카테고리의 다른 글

[TIL] #5. 230918  (0) 2023.09.18
[WIL] #1. 230914~230917  (0) 2023.09.17
[TIL] #3. 230916  (0) 2023.09.16
[TIL] #2. 230915  (0) 2023.09.15
[TIL] #1. 230914  (0) 2023.09.15