SELECT
query_name
, ROUND(SUM(rating/position)/COUNT(*), 2) AS quality
, ROUND((SUM(rating < 3)/COUNT(*))*100, 2) AS poor_query_percentage
FROM
queries
GROUP BY
query_name
;
→ Testcase 중에 query_name이 NULL인 경우가 있어서 오답 처리되었음
SELECT
query_name
, ROUND(SUM(rating/position)/COUNT(*), 2) AS quality
, ROUND((SUM(rating < 3)/COUNT(*))*100, 2) AS poor_query_percentage
FROM
queries
WHERE
query_name IS NOT NULL
GROUP BY
query_name
;
→ IS NOT NULL 이용하여 해당 내용 수정 후 제출하니 성공함
WITH poor_query AS (
SELECT
query_name
, ROUND((SUM(rating < 3)/COUNT(*))*100, 2) AS poor_query_percentage
FROM
queries
GROUP BY
query_name
)
SELECT
query_name
, ROUND(SUM(rating/position)/COUNT(*), 2) AS quality
, poor_query_percentage
FROM
queries
JOIN poor_query
USING(query_name)
GROUP BY
query_name
→ CTE 썼더니 IS NOT NULL 없이도 제출 성공
SELECT query_name,
ROUND(AVG(rating / position), 2) AS quality,
ROUND(AVG(IF(rating < 3, 1, 0)) * 100, 2) AS poor_query_percentage
FROM Queries
WHERE query_name IS NOT NULL
GROUP BY query_name;
SELECT
query_name
, ROUND(AVG(rating / position), 2) AS quality
, ROUND(SUM(CASE WHEN rating < 3 THEN 1 ELSE 0 END) * 100 / COUNT(*), 2) AS poor_query_percentage
FROM
queries
WHERE
query_name is NOT NULL
GROUP BY
query_name
;
WITH first_order AS (
SELECT
RANK() OVER(PARTITION BY customer_id ORDER BY order_date) AS ranking
, customer_id
, order_date
, customer_pref_delivery_date
FROM
delivery
)
SELECT
ROUND((SUM(order_date = customer_pref_delivery_date)/COUNT(*))*100, 2) AS immediate_percentage
FROM
first_order
WHERE
ranking = 1
;
select round(100*avg(datediff(order_date,customer_pref_delivery_date)=0),2) as immediate_percentage
from (
select customer_id,order_date,customer_pref_delivery_date,rank() over (partition by customer_id order by order_date) as rnk
from Delivery
)temp
where rnk<=1
SELECT ROUND(AVG(order_date=customer_pref_delivery_date)*100.0,2) AS immediate_percentage
FROM Delivery
WHERE (customer_id, order_date) IN (
SELECT customer_id, min(order_date)
FROM Delivery
GROUP BY customer_id
)
def solution(s):
answer = True
if len(s) == 4 or len(s) == 6:
for i in s:
if i.isdigit():
pass
else:
answer = False
else:
answer = False
return answer
# 1
def solution(s):
answer = True
if (len(s) == 4 or len(s) == 6) and s.isdigit():
pass
else:
answer = False
return answer
# 2
def solution(s):
return True if (len(s) == 4 or len(s) == 6) and s.isdigit() == True else False
def solution(s):
return s.isdigit() and len(s) in [4,6]
→ 4와 6이라는 두 개의 값을 가진 list로 문자열 길이가 4,6의 경우에 해당되는지를 확인하고 isdigit()으로 숫자인지를 검증
def solution(s):
try:
int(s)
except:
return False
return len(s) == 4 or len(s) == 6
→ try/except문 활용
서정욱 튜터님께 통계학 기초 관련 질문 보내서 답변 받았음
안녕하세요 튜터님~ 1주차 강의 듣다가 궁금한 점이 생겨서 메시지 남깁니다! 상관계수 계산할 때 np.corrcoef와 df.corr 둘 다 사용하셨는데 둘 사이에 어떤 차이가 있나요? 경우에 따라 corrcoef를 쓸 때와 corr를 쓸 때가 나눠져 있나요? 찾아보니까 corrcoef가 NaN값에 더 민감하다고 하는데 이게 무슨 뜻인지 혹시 설명해 주실 수 있으신가요...
전달드린 링크
답변 온 내용
7시 반 튜터님 방에서 QnA
2주차 연습문제 2번
1.96*표본 평균오차 이렇게 하면 튜터님이 적으신 것처럼 나오고 함수 쓰면 튜터님이 써 주신 정답과 다른 답이 나와요분포를 구분하는 이유는 뒤에 사용하는 검정이 달라지기 때문인가요? 스튜던트 t 랑 정규분포는 표본수의 차이 외에는 다른 차이는 없다고 보면 될까요?
→ 음 저는 저거 픽셀수 200개랑 10개로보는 차이로 생각했어요 픽셀 수많으면 고화질(동민님 의견)
랜덤성: 컴퓨터로 랜덤한 숫자를 뽑을 때 완전한 랜덤이라고 할 수 있나요?
pairplot 그릴 때 diag_kind = False 하면 자기 자신 히스토그램 없앨 수 있음
분포를 볼 때 어느 정도 개수가 정규분포라고 할 수 있을까요?
자유도
카이제곱 → 감마함수(팩토리얼 계산할 때 정수 범위 -> 복소수 범위까지 확장): 팩토리얼 상위호환
푸아송 → 정규분포 근접 n이 커야 하냐 람다가 커야 하냐
여기서 람다는 발생률을 의미하는건가요…?
빈도 에 구간이 더해지면 람다라고 이해하면 될까요?