본 포스팅은 님 께서 내주신 숙제 풀이 과정에 대한 포스팅입니다.
숙제가 들어있는 포스팅은 다음 포스팅입니다.
[SQL] 비개발자도 스티밋 통계를 뽑을 때까지 - 4편 - 이젠 진짜 통계를 뽑아봅시다.
그 중 숙제의 내용은 다음 포스팅의 결과물을 SQL문으로 직접 작성해보라는 것이었습니다.
[통계] 스티밋의 가입자 수 40만 돌파 기념 - 월별 가입자 수 추이와 생각
결과물은 다음과 같이 월별 스팀잇 가입자수의 로우데이터 테이블을 뽑아 내는 것입니다.
풀이과정
먼저 숙제에서 요구하는 스팀잇 가입 유저의 데이터가 어디에 있는지부터 살펴보려 하지만 일단 막막합니다. nhj12311님께서 친절하시게도 힌트를 주셨습니다.
힌트 : ACCOUNTS.CREATED(생성일=가입일), LEFT 정말 다 드렸습니다.
힌트를 기반으로 created가 어디에 있는지 찾아봅니다.
구조를 보아하니 어디선가 봤었던 기억이 납니다.
보팅파워를 확인하느라 종종 봤었던 https://steemd.com/@siapa0516 에서 봤었던 구조와 비슷합니다. 이제 대충 account 라는 DB의 하부 카테고리에는 어떤 데이터들이 들어있을지 예상이 됩니다.
그리고 SQL left 검색을 통해서 사용법을 숙지하고 왼쪽에서 7자리 데이터만 선택하게끔 명령어를 입력해봅니다.
오잉 근데 결과가 조금 이상합니다. 분명 위의 데이터상으로는 왼쪽에서 7자리 선택하면 YYYY-MM 라는 형식의 결과값이 출력이 되어야 할 것 같은데.. 결과값은 월 일이 출력되고 있습니다.
출력값의 형식이 MM DD YYYY 형식으로 출력됩니다. 숙제가 쉽게 끝나나 했습니다.
구글에서 sql left date 라고 검색해보았습니다.
역시나 구글신님은 모르는게 없습니다. 비슷한 경험을 했던 사람들이 많았었 던 것인지 검색결과가 마구 쏟아집니다.
저는 그중에서 아래의 글에서 문제를 해결할 답을 찾았습니다.
https://stackoverflow.com/questions/889629/how-to-get-a-date-in-yyyy-mm-dd-format-from-a-tsql-datetime-field
일단 위의 형식에 맞춰 명령문을 작성해봅니다.
오 결과값이 일단 원하는 형식대로 출력됨을 확인 할 수 있습니다.
숙제 끝 입니다!