ALL

· SQL/LeetCode
문제 링크https://leetcode.com/problems/delete-duplicate-emails/문제중복 이메일이 있으면 id가 가장 작은 하나의 이메일만 남기고 삭제해라.Keyword : DELETE, SELF JOIN풀이DELETE 문에서 SELF JOIN 사용법을 몰라 처음엔 조금 해맸는데 엄청 간단하게 구현할 수 있는 문제였다.A는 삭제할 테이블, B는 비교할 테이블로 두고 A와 B의 이메일이 같으면서 A의 id가 B의 id보다 더 큰 경우 삭제시켰다.DELETE A FROM Person A, Person BWHERE A.email = B.email and A.id > B.id;
· SQL/LeetCode
문제 링크https://leetcode.com/problems/game-play-analysis-iv/문제처음 로그인한 날로부터 최소 2일 연속 로그인한 플레이어의 비율을 구하시오. 소수점 2자리까지 반올림하여 표시하시오.Keyword : 날짜 함수, GROUP BY풀이다른 날짜는 생각하지 않고 플레이어별 처음 로그인 날짜를 기준으로 한다. 3일 이상 연속은 생각할 필요 없이 2일 연속만 찾으면 된다.플레이어별 (로그인 날짜 - 1)한 날짜가 최초 로그인 날짜인지를 확인하면 된다.전체 플레이어를 COUNT할 때 player_id의 중복을 고려해야 한다.SELECT ROUND(COUNT(*)/(SELECT COUNT(DISTINCT player_id) FROM Activity),2) AS fractionF..
· SQL/LeetCode
문제 링크https://leetcode.com/problems/confirmation-rate/문제사용자의 메시지 확인 비율 구하기. 비율은 확인된 메시지 수/전체 메시지 수로 구함.확인 메시지를 요청하지 않은 사용자의 확인 비율은 0이며 소수점 두자리까지 반올림하시오.Keyword : LEFT JOIN, IF풀이처음엔 COUNT를 사용해서 직접 나눠주려다가 잘 안풀려서 찾아봤더니 AVG와 IF 함수로 풀이하시는 걸 봤다.IF문을 사용해서 'confirmed' 인 것만 더해서 평균내면 확인 비율 구할 수 있다.IF와 그룹 함수를 적절히 활용하기SELECT A.user_id, ROUND(AVG(IF(B.action='confirmed',1,0)),2) AS confirmation_rateFROM Signu..
· SQL/LeetCode
문제 링크https://leetcode.com/problems/students-and-examinations/문제각 학생이 각 시험에 참여한 횟수를 구해라. 없으면 0으로 출력. student_id와 subject_name으로 정렬해라.keyword : CROSS JOIN, LEFT JOIN, GROUP BY풀이처음엔 Subjects 테이블을 사용안하고 풀 수 있나 했는데 0도 출력하기 위해서 CROSS JOIN할 때 사용했다.COUNT 할 때, Examinations 테이블의 student_id로 해야 제대로 카운트된다.GROUP BY 할 때, student_id, subject_name만 사용해도 가능했지만 세 개 다 써주는게 실행시간이 빨랐다.SELECT A.student_id, A.student_..
· SQL/LeetCode
문제 링크https://leetcode.com/problems/average-time-of-process-per-machine/문제여러 컴퓨터가 있는 공장 웹사이트가 있다. 각 기계가 프로세스를 완료하는 데 걸리는 평균 시간을 구하시오.프로세스를 완료하는 시간은 'end' timestamp - 'start' timestamp이고 소수점 이하 3자리에서 반올림하시오.keyword : SELF JOIN, GROUP BY풀이SELF JOIN 하는데 ON절을 이용하여 시작 시간과 끝나는 시간 분리하고 GROUP BY 후 AVG() 함수 활용하기SELECT A.machine_id, ROUND(AVG(B.timestamp-A.timestamp),3) AS processing_timeFROM Activity A IN..
· SQL/LeetCode
문제 링크https://leetcode.com/problems/rising-temperature/  문제어제와 비교해서 온도가 더 높은 날의 id 출력하기Keyword : SELF JOIN, 날짜 함수풀이1. 날짜 함수 DATEDIFF()를 활용하여 SELF JOINDATEDIFF(date1, date2) : 두 날짜 값 사이의 일수 계산SELECT A.idFROM Weather A INNER JOIN Weather BON DATEDIFF(A.recordDate, B.recordDate) = 1WHERE A.temperature > B.temperature; 2. 날짜 함수 DATE_ADD()를 활용하여 SELF JOINDATE_ADD(date, INTERVAL value UNIT) : 날짜에 값만큼 유..
· Review
2023.12.09.~2023.12.10.BDIA 해커톤 참여 및 네이버클라우드상 수상 후기  참가 과정 및 팀 빌딩 빅데이터 분석가 교육과정이 끝나고 백수 생활을 즐기고 있던 중 단톡에 BDIA 해커톤에 대한 공지가 올라왔다. 최종 프로젝트 조원 중 나를 포함한 3명이 한 번 해보자! 하고 팀을 꾸렸고 다른 조에서 한 명 더 영입해서 총 4명의 팀원으로 참가하게 되었다. 해커톤은 짧은 시간내에 개발을 해내야 하는 대회라서 살짝 걱정도 됐다. 우리는 빅데이터 분석가 교육생 4명이었는데 어떻게든 되겠지! 하며 도전해보기로 했다.  대망의 12월 9일 참가 날짜가 되었고 버스를 두 번 갈아타며 영도에 도착했더니 해커톤 후드티와 이름표를 나눠주셨다. 후드티를 갈아입고나니 정말 해커톤에 참여하는게 실감났다. 무..
· Python/Web
WSGI WSGI(Web Server Gateway Interface) 웹 서버 소프트웨어와 파이썬으로 작성된 웹 응용 프로그램 간의 표준 인터페이스 표준 인터페이스는 여러 웹 서버에서 WSGI를 지원하는 응용 프로그램을 쉽게 사용할 수 있도록 함 Django Django는 프로그래밍 언어가 아니라 프레임워크 구조 Django의 MTV 구조를 사용함 - MTV Model : 데이터 처리. app/models.py 파일 내의 클래스 형식으로 작성. 반드시 app 필요 Template : 클라이언트에게 보여줄 UI (HTML, CSS, JavaScript). settings.py 설정 필요 View : Controller 역할. 요청을 받은 후 응답. 함수 또는 클래스 형식으로 작성. app 생성하지 않아도..
· Python/Web
Views.py 작성하기 Django 웹 프로그램은 함수 호출 기반으로 구조화 됨 views.py 내에 작성하는 모든 프로그램은 함수로 만들기 views.py 내에 작성하는 모든 함수에는 매개변수로 request 를 항상 넣어줘야 함 views.py 내의 함수 1개당 웹 페이지 1개라고 인지 request : 클라이언트의 요청을 받아오기. 요청 정보가 들어있음 - HttpResponse 이용하기 각 app의 views.py 파일에 from django.http import HttpResponse 추가하기 HttpResponse를 return하여 웹페이지 보여줌 from django.shortcuts import render # HttpResponse 추가하기 from django.http import H..
윤시·̑.̮·̑
'분류 전체보기' 카테고리의 글 목록