오늘은 sql+python 합해서 5문제 풀기로.
- PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회하는 SQL문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목이 출력되도록 작성해주세요. 결과는 진료예약일시를 기준으로 오름차순 정렬해주세요.
SELECT a.apnt_no, p.pt_name, p.pt_no, d.mcdp_cd, d.dr_name, a.apnt_ymd
from doctor d
join appointment a
on a.mddr_id=d.dr_id
join patient p
on a.pt_no=p.pt_no
where date_format(apnt_ymd, '%Y-%m-%d') = '2022-04-13'
and d.mcdp_cd='CS'
and a.APNT_CNCL_YN='n'
order by a.apnt_ymd
순차적으로 join 이 돼서 2번째로 쓴 테이블이 가운데에 있나보다.
이 사실을 미리 기억했었다면, 더 빠르게 문제를 풀 수 있었을 텐데 !
def solution(n):
for x in range(1,n):
if n % x == 1:
return x
가장 작은 x를 찾는 조건때문에 떠올리기 너무 막막했는데, 검색찬스를 이용하긴 했지만 이해 안가는 부분은 없었다.
n-1까지 반복하는데, x가 n-1까지 반복문을 거치면, 최소 1개의 x값이 존재하게되고,
n=10라면, 9보다 작은 3이라는 숫자가 있기 때문에 1부터 반복하게 만들어야 가장 작은 x 를 구할 수 있을 것이다.(내가 이해한 내용)
(수학 안한지 너무 오래돼서 힘들다...)
for
문 리스트 컴프리헨션의 기본 구조⭐⭐⭐
[표현식 for 변수 in 반복 가능한 객체]
🔻최종 수정쿼리
def solution(x, n):
answer = [x*i for i in range(1,n+1)]
return answer
def solution(n):
answer = [ n for n in str(n) ]
return answer
여기까지 적었는데.. -1로 반대방향 해야하는 것까지도 알겠는데.. 그걸 어디에 어떻게 쓰지??
.
.
이리저리 시도해보다가 구글링!
🤷♀️ 2가지 방법을 찾았다.
1.[::-1]
[n for n in str(n)[::-1]]
2.reserved()
[n for n in reversed(str(n))]
❌그러나, 한가지가 오류가 더 있었다..
문자열로 바꿔서 출력이 "5","4" .. 이런식으로 됐다.
그래서 int()를 한번 더 써줬다..
def solution(n):
return [int(i) for i in str(n)[::-1]]
cf.
def solution(n):
answer = [int(i) for i in str(n)[::-1]]
return answer
이렇게 작성하면 프로그래머스 작동환경 때문에 실행이 안되는 듯 하다
(비효율적임을 느끼고 답안을 제출한 뒤 다른사람의 풀이를 봤다.)
🔻
def digit_reverse(n):
return list(map(int, reversed(str(n))))
map을 활용한 풀이 같은데, map을 까먹어서
종합반 강의를 들으며 다시 복습한 뒤, 이 문제를 다시 풀어봐야겠다 !!
def solution(s):
answer = int(s)
return answer
한번에 쉽고 빠르게 풀어서
덕분에 정신건강이 해로워지지 않고 마무리할 수 있었다.
.
.
# union/union all 기본구조
# 컬럼 순서가 같고, 그 형식이 같아야 함
select 컬럼1, 컬럼2, 컬럼3..
from 테이블명1
union (all) #수직결합 명시
select 컬럼1, 컬럼2, 컬럼3..
from 테이블명2
📌• 열의 갯수
와 순서
가 모든 쿼리에서 동일해야 한다.
• 두 테이블의 컬럼 이름
이 일치해야 한다.
-> 다르다면? as 로 이름 맞춰줘야한다 !!
as 사용해서 컬럼 이름
• 위 두 가지의 조건을 만족할 경우, UNION 과 UNION ALL 은 2개 이상의 테이블도 결합할 수 있다.
.
.
(조인만 깊게 파다가 코테에서 유니온 틀려오지 말기 ~)
.
공통컬럼은 꼭 하나가 아닐 수 있다. 여러개도 가능!
🙋테이블A: 나는 이름컬럼과 나이컬럼이 있어.
🙋♂️테이블B: 나는 이름컬럼과 나이컬럼과 국가컬럼이 있어.
.
.
→ 공통컬럼: 이름, 나이
→ 공통컬럼 조건 1개: 이름이 같은 경우를 확인하고 싶은 경우
→ 공통컬럼 조건 2개: 이름과 나이가 같은 경우를 확인하고 싶은 경우
이 그림으로 이해해보면 쉽다.
(left join과 inner join을 가장 많이 사용한다)
오늘 가장 많이 참고한 자료 !!
datef_format
을 많이 사용했는데, 앞으로 인자들을 다양하게 써보면서 자주쓰이는 건 기억해둬야겠다.
그리고 템플릿을 정하고 각자 맡을 역할을 정하고 오늘 팀스터디를 마무리했다.
내일 열심히 준비한 자료들을 바탕으로, ppt+발표준비에 박차를 가해야겠다.
.
.
🔻오늘 총 3강을 들었다.
1) 데이터 리터러시
2) 문제 정의
3) 데이터의 유형
🔺
.
북스터디를 진행한 책과 내용이 매우 유사해서, 편하게 들을 수 있었다.
아는 내용이 나와서 반갑기도 했다 ㅎㅎ
(정성 정량 데이터 비교는 이전 게시물로 업로드한 적이 있어 SKIP)
🔴🔴🔴1. 문제정의를 구체적이고 명확하게 하자.
예를 들어, 매출 증가가 목표 -> 모호하고 명확하지 않다.
그럼 어떻게?
지난 N개월 동안 전환율이 2%였는데, 어떤 마케팅 전략으로 전환율을 5%까지 향상시킬 수 있을지.
.
🔴🔴🔴2.우리 팀이 실제 업계 데이터와 비교하거나 유사성을 표현할 때,
이커머스 관련 행동 로그데이터
를 검색해서 참고해보면 좋을 것 같다.
.
🔴🔴🔴3.PPT만들때 로직트리
를 활용해보자
.
🔴🔴🔴4. SO WHAT? WHY SO? 활용
So what?
나타난 현상을 바탕으로 과제에 비추어 말할 수 있는 내용의 핵심을 추출하는 작업
Why So?
내가 내일 최종적으로 데이터+결론 흐름을 잘 연결지어야 발표를 매끄럽게 진행할 수 있을 것 같다.
내일 오후에는 이부분에 최대한 집중해보려한다.
팀스터디를 열심히 하고있다고 생각했는데, 스스로에게 부족한 부분이 자꾸 느껴진다.
데이터 분석 skill 말고 인간적으로.. (소통하는 법을 잊은 듯하다 왤케 말을 못하지)
같이 밥먹고 싶은 사람은 언제 될 수 있는걸까.. ?! 어렵다 어려워 ~~
오늘따라 유독 허리가 아팠다. . 그래서 자꾸 이상한 자세로 있느라 캠키기가 민망했다.
자세가 이상해서 더 아팠던 거겠지?? 내일은 아침부터 정신차리고 정자세로 앉아있으려 노력해야겠다. 이번주도 벌써 절반이 지나갔군. 잘 마무리하자 🍀