자신에게 친절할 것 :)
728x90
반응형

전체 글 151

[프로그래머스 sql] coalesce()로 null 다른 값으로 변환

12세 이하인 여자 환자 목록 출력하기 - 이게.. 왜 안될까.. ?  수정 전SELECT PT_NAME, PT_NO, GEND_CD, AGE, CASE WHEN TLNO = NULL THEN TLNO = 'NONE' ELSE TLNO -- none이 안 뜨고.. 사라짐. END AS TLNOFROM PATIENTWHERE AGE  수정 후 1)- 얼추 맞는 코드로 보이나..- 근데, tlno가 숫자로 되어 있기 때문에.. 제대로 동작하지 않음.SELECT PT_NAME, PT_NO, GEND_CD, AGE, CASE WHEN TLNO IS NULL THEN 'NONE' ELSE TLNO -- null, none은 = 연산자가 안되서, is 써야 함.. END AS TLNOFROM PATIENTW..

Data Science/MySQL 2025.02.04

[프로그래머스 sql] date_format() 사용할 것.

흉부외과 또는 일반외과 의사 목록 출력하기 - sql 형변환을.. 어떻게 해야하지..?그냥 시간만 잘라야 하나.. 고민하다가 다른 분들 답변을 보니깐substr() 로 그냥 시간 부분을 자르는 분들도 있었는데date_format()사용해서 딱 해당 부분만 출력하시는 분의 답변을 가져왔다.  수정 전SELECT DR_NAME, DR_ID, MCDP_CD, date(HIRE_YMD) -- 어찌할 바를 모르고,, 냅다 date 시전FROM DOCTOR WHERE MCDP_CD = 'CS' OR MCDP_CD ='GS'ORDER BY HIRE_YMD DESC, DR_NAME; 수정 후SELECT DR_NAME, DR_ID, MCDP_CD, date_format(HIRE_YMD, '%Y-%m-%d') as HI..

Data Science/MySQL 2025.02.04

[프로그래머스 sql] group by는 select 값이 전부 포함되어야 함.

재구매가 일어난 상품과 회원 리스트 구하기 뭐가 문제인 걸까..? 수정전 SELECT USER_ID, PRODUCT_IDfrom ONLINE_SALEgroup by PRODUCT_IDhaving count(*) > 1order by USER_ID, PRODUCT_ID desc; 수정 후 .. 2개 밖에 없어서.. 그룹바이를 하나로 했는데..select 값 2개 다 넣으니깐.. 해결.. 처음에 그렇게 했다가 이상한 줄.. SELECT USER_ID, PRODUCT_IDfrom ONLINE_SALEgroup by USER_ID, PRODUCT_IDhaving count(*) > 1order by USER_ID, PRODUCT_ID desc;

Data Science/MySQL 2025.02.03

[HackerRank sql] Symmetric Pairs 다소 이해가 안감

Symmetric Pairs 수정 전- 사실 상.. 전혀 코드를 떠올리지 못했고..디스커션을 치팅함.. 셀프 조인인데.. 어떻게 줘야 할지조차도 모르겠더라..select f.x, f.yfrom functions fjoin functions f1 on f.x = f1.y -- on에 조건식을 넣을 수도 있는 건데 전혀 생각을 못 했음...where f.x  수정 후 ... 대칭적인 쌍은 서로 다른 두 값을 의미하기 때문에, 자기 자신인 x=y인 경우에는 대칭 쌍이 될 수 가 없다.. -  그래서 해당하는 값을 빼야 하기 때문에 HAVING COUNT(*) > 1 조건을 추가해서 중복을 없애게 함. - 추가적으로, cte를 사용해서 self join의 복잡도를 줄여야 함..- 하.. cte만 집중적으로 연습..

Data Science/MySQL 2025.01.28

[HackerRank sql] where절과 from절 서브쿼리 차이

Contest Leaderboard- 나름 거의 다 했는데..- 0일 때 제외하는 조건을.. 고민하다가 틀렸다. - 검색해서 not in으로 해볼려고 했는데.. 하면서도 뭔가 이상하더라. ㅎ 수정 전select h.hacker_id, h.name, sum(s.score)from hackersjoin submissions s using(hacker_id)group by h.hacker_id, h.namehaving s.score = (select max(s1.score) from submissions s1 where s1.challenge_id = s.challenge_id and not in (s1.score = 0)..

Data Science/MySQL 2025.01.28

[HackerRank sql] 집계함수 내에도 필요하면 distinct 쓸 것.

New CompaniesNote: -> 노트에 주의할 것. The tables may contain duplicate records. => 그게 아니라 중복이.. 문제였던 것The company_code is string, so the sorting should not be numeric. For example, if the company_codes are C_1, C_2, and C_10, then the ascending company_codes will be C_1, C_10, and C_2.- 왠지 서브쿼리로 빼야 할 거 같은데 .. 나의 한계이다.. 도저히 모르겠어.. ㅠ- 난 그룹바이를 복잡하게 빼는 것을 어떻게 할 지를 모르겠어... - where절로 빼는 게 맞는 건가?   수정 전sele..

Data Science/MySQL 2025.01.26

[HackerRank sql] group by가 아닌 서브쿼리 조건으로 넣을 것

Ollivander's Inventory - 최대한.. 써보았으나 역시 굴러가지 않는 내 코드 ㅠ- min(coins_needed)도 따로 빼라고 하는데.. 왜지.. 자꾸 여기서 헷갈린다. 조건이니깐, 그런건지.. 그냥 셀렉트에서 하면 왜 안되는 건지.. - 적용 순서 때문인 것 같기도 하고 ==> 지피티 답단순히 SELECT를 사용하면, MySQL은 그룹화 기준에 포함되지 않은 열들에 대해 어떤 값을 선택할지 보장하지 않습니다.- 나는 그냥 age만 group by를 사용했는데 이렇게 하면, 나머지는 포함되지 않고 어떻게 선택될지 보장이 안 되기 때문에 서브쿼리로넣어서 확실하게 적용되도록.. 하는 거래.. 각 age별로 가장 작은 coin_needed를 계산해야 하니깐.   수정 전select w.id..

Data Science/MySQL 2025.01.25

[HackerRank sql] join 동시에 여러 개, 집계 함수 위치

Top Competitorsdiscussion을 보면서  여러 개의 조인을 동시에 쓰는 것과on 대신 using (같은 칼럼명) 을 쓰는 것까지는 기억했다.count()도 위치가 where에 있으면 안 되는  것까지는 알겠으나,,어떻게 손을 대야 할지를 모르고 멈춘 후 지피티에게 물었다.  수정 전select h.hacker_id, h.namefrom kackers hjoin submissions s using(hacker_id)join challenges c using(challenge_id)join difficulty d using(difficulty_level)where count(s.score = d.score) as t_s > 1 -- 여기가 문제인데.. 하.. 모르겠더라order by t_s ..

Data Science/MySQL 2025.01.25

[HackerRank sql] join between and를 써서

The Reportbasic join을 쓰는 거라서 쉬운데도 이게 뭐지... 고민했다.다들 cte쓰는데 .. 모르겠고 등급이 8부터는 case when then 으로 조건을 name에 주고 아래, 성적 등급 매기는 것은 on 뒤에 바로 between and로 구현 했다..이것도 익숙하지 않으니깐 우선 써둠.  select case when grades.grade > 7 then students.name -- 조건 주기 else null end as name, grades.grade, students.marksfrom studentsinner join gradeson students.marks between grades.min_mark and grades...

Data Science/MySQL 2025.01.25

[HackerRank sql] 중간값 구하기. cte

Weather Observation Station 20 번 문제인데 솔직히... 잘 모르겠다. mysql을 할 때 집계함수의 경우 where에 쓸 수 없다는 것은 알겠고, 서브쿼리의 윈도우 함수로 계속 풀려고 했는데도 잘 안됐다..내가 볼 땐 더 쉬운 것을 풀어봐야 겠는데.. 어렵다. mysql은 앞서 계산한 값을 바로 참조할 수 없기 때문에CTE(Common Table Expression)를 임의로 만들어서 사용하려는 것은 알겠다.다만, 어떨 때 그렇게 할 수있는지를 아직도 잘 모르겠다.. 다시말하지만, 부트캠프를 들으면서 잠깐 배웠다고 해서.. 알게 되는 게 아니다 진심으로.별 수 없이 discussion 과 구글링 그리고 지피티에게 물어보면사 하나하나 뜯어보면서 익히고 있다...풀다가 자꾸 medi..

Data Science/MySQL 2025.01.25
728x90
반응형