문제 : 조건에 맞는 회원수 구하기
SELECT count (*) as users from user_info where joined like '2021%' and age between 20 and 29 |
내가 푼 풀이는 이렇지만 처음에 시도했을 땐 like 연산자 쓸 생각을 하지 못하고
where joined ='2021'
라고 적었고 두 번째 시도에서는 where date(joined)='2021' 이런식으로 잘못된 기입을 했다.
date쓸것없이 앞네글자만 2021이라는 것을 알면 되니까 위처럼 라이크연산자를 작성하면 된다.
또 다른 풀이도 두 가지 더 있어 참고하려 가져와봤다.
출처: https://20240228.tistory.com/180 [지적 겸손함:티스토리] |
SELECT count (*) as users from user_info where substr(joined,1,4)=2021 and age between 20 and 29 |
문제 : 중성화 여부 파악하기
보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요.
첫 시도는
-- 코드를 입력하세요 SELECT animal_id,name, case when sex_upon_intake='neutered' then 'O' when sex_upon_intake='sprayed' then 'X' end "중성화" from animal_ins |
neutered 뒤에 %없는것도 문제가 있고, 애초에 라이크연산자 사용도 아님.. 실행이 안되었다
두번째 시도
-- 코드를 입력하세요 SELECT animal_id,name, case when sex_upon_intake like '%neutered%' then 'O' else 'X' end "중성화" from animal_ins |
앞에 퍼센트를 붙일 필요가 없을듯, 그리고 sprayed 가 빠져서 오답인듯하다.
SELECT
ANIMAL_ID, NAME,
CASE
WHEN SEX_UPON_INTAKE LIKE('%Neutered%') OR SEX_UPON_INTAKE LIKE('%Spayed%') THEN 'O'
ELSE 'X'
END 중성화
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
출처: https://20240228.tistory.com/223 [지적 겸손함:티스토리]
결국 혼자 답을 알아내지 못해 여러 사람들이 올려준 풀이를 보고 오류를 찾아내었다.
아직 기본적인 구문을 활용하는 과정에서도 어려움이 많아서 매번 풀이 시간이 더욱 길어지고 있다ㅠ
'SQL' 카테고리의 다른 글
[1203 TIL] sql코드카타(substr,hour) (0) | 2024.12.03 |
---|---|
[1203 TIL] -2 데이터분석 조별과제 쿼리짜기 (0) | 2024.12.03 |
[1129 TIL] (2) | 2024.11.29 |
[1128 TIL] 알고리즘SQL 코드카타 , WHERE / HAVING의 차이 (1) | 2024.11.28 |
[1127 TIL] SQL 작성 시 명명 규칙과 주석 처리 방법, null값의 의미, 조건연산자 필터링 (0) | 2024.11.27 |