일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 태블로
- streamlit
- 기초프로젝트
- 클러스터링
- 최종 프로젝트
- Python
- 프로젝트
- 크롤링
- 히트맵
- 프롬프트 엔지니어링
- 기초통계
- 시각화
- If
- jd
- SQLD
- lambda
- data analyst
- da
- 군집화
- pandas
- 서브쿼리
- 전처리
- 머신러닝
- 데이터 분석
- GA4
- 팀프로젝트
- cross join
- SQL
- 데이터분석
- Chat GPT
- Today
- Total
세조목
TIL(Today I Learned)11일차(23.12.12) 본문
1. SQL
1) 프로그래머스 64번 문제
https://school.programmers.co.kr/learn/courses/30/lessons/77487
64번 문제에서는 공간을 둘 이상 등록한 유저를 '헤비 유저'로 부르며
이 '헤비 유저'가 등록한 공간의 정보를 아이디어 순으로 조회하라고 요구한다.
우선 '공간을 둘 이상 등록한 유저' 라는 조건이 있기때문에 WHERE절을 활용할 수 있을 것 같다.
공간을 둘 이상 등록한 유저를 어떻게 뽑아낼 수 있을까?
HAVING COUNT??
HAVING COUNT를 활용해서 작성한 코드는 아래와 같다.
SELECT ID,
NAME,
HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(*) > 1
ORDER BY ID
코드의 결과물은 아래와 같은데 두 명의 호스트가 두 개 이상의 방을 등록한 것은 알고 있지만
어떤 방을 등록했는지는 알수가 없다. 그렇다고 GROUP BY 절에 ID(또는 NAME)를 넣게 되면 COUNT값이 1개를 초과하는 값을 찾을 수 없기때문에 출력되는 값이 없어지게 된다.
그렇다면 어떻게 해야할까?
WHERE절에서 COUNT가 1개를 초과하는 HOST들을 먼저 뽑아내고
그 HOST들의 ID, NAME, HOST_ID를 출력하면 되지 않을까??
거를꺼 먼저 거르고 남은 애들에 한해서 출력해야하는 내용들을 출력하는 것이다.
SELECT ID,
NAME,
HOST_ID
FROM PLACES
WHERE HOST_ID IN
(
SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(*) > 1
)
ORDER BY ID
그렇게 작성한 코드는 위와 같으며 결과 값은 아래와 같다.
2. PYTHON
1) 프로그래머스 13번 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12931#qna
13번 문제 요구사항이다.
자연수 N의 각 자리수의 합을 구하라고한다.
다른 프로그래밍 언어에서는 while문을 이용해서 풀긴하던데
python에서는 어떻게 풀어야하나 고민하던 중
string(문자)의 경우 인덱싱이 가능하다는 사실을 알고서
다음과 같이 코드를 작성해봤다.
def solution(n):
answer=0
for i in str(n):
answer+=int(i)
return answer
- 일단 자연수 n을 str( ) 안에 넣어서 문자화 시켜준다.
- 그러면 앞에서 언급한것처럼 인덱싱을 할 수 있기때문에 하나의 값을 먼저 가져와서 i에 넣어준 후
- int( ) 함수로 다시 정수화 시켜주고 answer에 더해준다.
- 이 과정을 자연수 n의 각 자리수를 모두 더할때까지 반복해주게 된다.
예를 들어 자연수 n의 값이 573이라고 가정해보자
- str(573)
- 5, 7, 3을 차례대로 가져와서
- int( ) 에 넣어준 후 answer에 더해주면 아래와 같이 계산이 이루어진다.
answer = 0(초기값) + 5
answer = 5 + 7
answer = 12 + 3
answer = 15
2) 기타
- input으로 값을 입력받으면 type은 항상 str이다.
- .nf는 소수점 n자리까지 출력하라는 의미이다(ex. .2f는 소수점 둘째자리까지 출력해라는 의미).
'데이터 분석 공부 > TIL(Today I Learned)' 카테고리의 다른 글
TIL(Today I Learned)13일차(23.12.14) (0) | 2023.12.14 |
---|---|
TIL(Today I Learned)12일차(23.12.13) (0) | 2023.12.13 |
TIL(Today I Learned)10일차(23.12.11) (1) | 2023.12.11 |
TIL(Today I Learned)9일차(23.12.08) (1) | 2023.12.08 |
TIL(Today I Learned)8일차(23.12.07) (0) | 2023.12.07 |