안녕하세요! self join 리트코드 문제풀이 1 강의에서 inner join을 사용하셨는데, 지난 강의에서 inner join은 join했을 때 null값이 안 생기는 경우 쓰는 것이고 outer join(left, right join)은 null 값이 생기는 경우에 쓰는 것이라고 강의 내용을 이해했습니다. 그러면 이 경우는 inner join이 아닌 outer join을 해야 하는 것 아닌가요? 항상 좋은 강의 감사합니다
안녕하세요 섹션1. 집계함수 해커링크 문제풀이 강의 질문 드립니다. Average Population 문제의 내용이 변경되었다고 안내 되어 있는데 rounded down to the nearest integer해당 문장의 의미는 내림을 하라는 의미 아닌가요? round함수를 사용한 풀이가 나와있어 이해되지 않아 질문드립니다.
안녕하세요. 완강을 하고 전반적으로 복습을 하는 차원에서 다시 쿼리를 공부하고 있는데 3달이 아닌 전체 데이터세트를 가지고 한 번 해보고 싶어서요. 혹시 구글 애널리틱스 전체 데이터셋을 다운 받을 수 있는 방법이 있을까요 ? 제가 찾아보니까 날짜 하루하루 단위로 다운로드는 가능한데 1년치를 이렇게 다운받는 건 너무 일이 많은 거 같아서 질문드립니다.
SELECT MAX(months*salary) , COUNT(name) FROM employee GROUP BY months*salary ORDER BY months*salary DESC LIMIT 1 제가 다음과 같이 코드를 작성했는데 이것도 정답으로 나오더라고요! GROUP BY에 컬럼이 사용되려면 SELECT에서 컬럼이 정의되어져야 한다고 알고 있는데 정답이 어떻게 나온건지...궁금해요. SELECT에서 컬럼이 그 자체로 쓰이는 게 아니라 함수와 함께 쓰여도 GROUP BY와 함께 쓰일 수 있는 건가요?
SELECT ROUND(AVG(LAT_N), 4) FROM ( SELECT LAT_N , PERCENT_RANK() OVER(ORDER BY LAT_N) rank FROM station ) sub WHERE rank = 0.5 틀렸데요. 왤까요? ....................................................................
SELECT ROUND(AVG(LAT_N), 4) FROM (SELECT ROW_NUMBER() OVER(ORDER BY LAT_N) row_num , COUNT(*) OVER() n , LAT_N FROM station) sub WHERE CASE WHEN n % 2 = 1 THEN row_num = (n+1)/2 ELSE row_num IN (n/2, (n/2)+1) END Msg 102, Level 15, State 1, Server dbrank-tsql, Line 19 Incorrect syntax near '='. MOD 쓰면 MS SQL Server 에서는 작동 안된다고 하고 윈도우 함수 쓰면 MYSQL에서는 작동 안된다고 하는데 MS SQL Server에서 홀수 구하는 공식을 저렇게 했는데 = 쓰지 말라고 하고 in을 쓰면 in쓰지 말라고 하는데 도대체 어떻게 해야 풀 수 있는 건가요? P.S 새로 고침도 했습니다. 껐다 켰구요. 로그아웃도 하고 다시 실행 했습니다.
SELECT ROUND(AVG(LAT_N), 4) FROM (SELECT LAT_N , ROW_NUMBER() OVER(ORDER BY LAT_N) rank FROM station) sub WHERE CASE WHEN MAX(rank) % 2 =0 THEN rank in ( MAX(rank) / 2, (MAX(rank) / 2) + 1)) ELSE rank = ROUND(MAX(rank) / 2) END ) Msg 156, Level 15, State 1, Server dbrank-tsql, Line 16 Incorrect syntax near the keyword 'in'. 저런 메세지가 출력되는데 어떻게 수정해야 작동할까요? 그리고 MS SQL Server 로 ROUND( something, 4) 를 했는데 "85.87180000" 이런 값을 주는 건가요? 그냥 MYSQL로 하면 안 저래요. 그러나 MYSQL로 하면 윈도우 함수 쓸 수 없어요. 어떻게 하면 좋아요?
SELECT id, age, min_coins, power FROM (SELECT W.id, WP.age, W.coins_needed, W.power , MIN(W.coins_needed) OVER(PARTITION BY age, power ORDER BY coins_needed) min_coins FROM Wands W INNER JOIN Wands_Property WP ON W.code = WP.code WHERE WP.is_evil = 0) sub ORDER BY power DESC, age DESC MIN() OVER(PARTITION BY) 로는 문제 못 푸나요?? 푸는 방법 알려줄 수있나요?? 중복된 power가 많이 나와요 ㅠㅠㅠ
with temp_01 as ( select d.category_name, to_char ( date_trunc ('month', a.order_date), 'yyyymm') as month_day, sum (amount) as sum_amount, count ( distinct a.order_id) as monthly_ord_cnt from orders a join order_items b on a.order_id = b.order_id join products c on b.product_id = c.product_id join categories d on c.category_id = d.category_id group by d.category_name, to_char ( date_trunc ('month', a.order_date), 'yyyymm') ) select *, sum (sum_amount) over ( partition by month_day order by month_day) as temp1, sum (sum_amount) over ( partition by month_day) as temp2, sum_amount / sum (sum_amount) over ( partition by month_day) as ratio from temp_01 집계 어날리틱 함수는 order by를 사용하면 파티션 내에서 누적합이 되는것으로 알고 있었는데 왜 이렇게 나올까요...? 제가 혹시 놓친게 있는 걸까요