25.4.11TIL

황효정·2025년 4월 11일

데이터 분석

목록 보기
38/88

백문이 불여일견
진짜 오늘 해보고 다시 느낀다. 듣고 공부하는거랑 실제 내가 해보면서 익히는게 속도차이랑 체감차이가 확 난다.
실제 해보니 이게 왜 이렇게 되는거지? 얘랑 쟤는 뭐가 다르지? 하면서 하나씩 습득할 수가 있다. ->그래서 튜터님이 꼭 문제 풀어보라고. 실제 해보는게 중요하다고 하셨던 것 같다.

코드카타 다시 풀어봄. 확실히 예전보다는 속도가 빨라진 것 같다. 근데 다시 풀다보니 답이 틀린게 나온다.
-> sql 코드카타
문제6번:동명 동물 수 찾기
내 쿼리
SELECT NAME, COUNT(*) AS COUNT
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT >= 2
ORDER BY NAME
정답은 맞는데 코드카타가 틀렸단다.. 이유를 모르겠다.

문제를 보면: "...이때 결과는 이름이 없는 동물은 집계에서 제외하며,..."라는 문장이 있다. 솔직히,, 내 쿼리도 맞는데, 코드카타는 그 문제에서 명시한대로만 풀어야 한다. 아니면 답이 맞아도 틀렸다고 함...; 그리고 생각해보니,, 아무리 잘 풀고 뽑아냈지만 혹시나의 상황을 대비하여 조건을 추가해주는게 좋은것도 같다는 생각이 든다.

그래서 한줄 추가해서 써보자면
SELECT NAME, COUNT(*) AS COUNT
FROM ANIMAL_INS
where name is not null
GROUP BY NAME
HAVING COUNT >= 2
ORDER BY NAME

또는
select NAME, count(NAME) as COUNT
from animal_ins
group by name
having COUNT>=2
order by name
이렇게 쓸수도 있다. count(컬럼)을 하게 되면, 중복값을 제거한다. count(*(은 중복값도 포함한 모든 행을 반환하지만 count(컬럼)은 그 컬럼값에 있는 데이터만 모아서 세준다. 다른 집계함수들도 마찬가지이다.!

약간 나한테는 저 동일한 컬럼을 두번이나 쓰고 그룹바이한다는게 생소해서 조금 그렇긴하다만,, 익숙해져야지 뭐 어째

오늘은 하루종일 sql을 한 것 같다.
오늘 저녁에 튜터님께 찾아가서 상담을 받아보았다.
현재 나의 상태는: sql -> qcc풀 때 1문제 이상 맞추는 정도(총 3문제임),
파이선-> 알고리즘 정도 하고 있음. 기초정도
판다스->기억도 나지 않음. 데이터 전처리 하는 것.
통계->이론만 어떻게 따라가는 중
머신러닝->강의 2개째 듣고 있는중.

내일 이어서 쓰겠다. 근데 진짜 오늘 찾아가길 잘했다ㅠㅠㅠㅠ 나를 엄청나게 짓누르던 큰 바위들이 내려진 시간이었다. 진짜감사..ㅠㅠㅠ 방향성, 공부방법의 변경 등에 대해서는 내일 더 적어놓겠다! 감사합니다 정말로!!

profile
청지기

0개의 댓글