목록데이터분석 (73)
개발은 처음이라 개발새발
DATE_TRUNC('날짜', '남기는 부분') DATETIME_TRUNC( '날짜', '남기는 부분') TIMESTAMP_TRUNC( '날짜', '남기는 부분') ※ 추출할 부분 ※ YEAR : 연도 (결과: 해당 연도의 첫날) MONTH : 월 (결과: 해당 월의 첫날) DAY : 일 (결과: 해당 날짜의 0시 0분) WEEK : 주(기본 일요일 시작) (결과: 해당 주차의 첫 날(일)) WEEK(MONDAY) : 주(월요일 시작) (결과: 해당 주차의 첫 날(월)) QUARTER : 분기 (결과: 해당 분기의 첫 날) HOUR : 시 MINUTE : 분 SECOND : 초 -- 원하는 정보까지만 추출하는 DATE/DATETIME/TIMESTAMP_TRUNC SELECT order_purchase_t..
** EXTRACT('추출할 부분' FROM '날짜 컬럼') 날짜에서 일부분만 추출하고 싶을 때 SQL에서는 EXTRACT 함수를 사용한다. ※ 추출할 부분 ※ YEAR : 연도 MONTH : 월 DAY : 일 DAYOFWEEK : 요일(0: 월요일 ~ 6: 토요일) WEEK : 주(기본 일요일 시작) WEEK(MONDAY) : 주(월요일 시작) QUARTER : 분기 HOUR : 시 MINUTE : 분 SECOND : 초 -- 필요한 값만 추출하는 EXTRACT SELECT order_purchase_timestamp, EXTRACT(YEAR FROM order_purchase_timestamp) AS YEAR, EXTRACT(QUARTER FROM order_purchase_timestamp) AS ..
SELECT DATE(2016, 12, 25) AS date_ymd, DATE(DATETIME '2016-12-25 23:59:59') AS date_dt, DATE(TIMESTAMP '2016-12-25 05:30:00+07', 'Asia/Seoul') AS date_tstz; SELECT DATETIME(2008, 12, 25, 05, 30, 00) AS datetime_ymdhms, DATETIME(TIMESTAMP '2008-12-25 05:30:00+00', 'Asia/Seoul') AS datetime_tstz DATE(): 연도/ 월/ 일만 표출 DATETIME(): 연도/월/일 시:분:초까지 표출 TIMESTAMP: DATETIME과 동일하게 표출되지만 읽는 곳의 지역에 따라 상대적인 시간..
BI 툴중 대표적인 TABLEAU와 LOOKER STUDIO 모두 문자열로 지정된 날짜데이터를 함수를 통해 변경할 수 있습니다. 그중에서 LOOKER STUDIO의 PARSE_DATE 함수에 대해 알아보겠습니다. 날짜데이터를 문자열로 저장한 예제입니다. LOOKER STUDIO에서는 문자열로 지정된 날짜데이터에따라 PARSE_DATE함수에서 지정하는 방식이 각기 다른데요. 해당 옵션들에 대해 확인해보겠습니다. 형식들을 보면 제 컬럼에는 월이 영어로(%b), 연도는 두자리만 표현(%y)됐기 때문에 이부분을 잘 지켜 필드 추가 버튼을 클릭해 작업을 진행합니다. PARSE_DATE 함수 작성후 잘 적용됐는지 날짜와 날짜PARE_DATE 컬럼을 비교해보겠습니다. Apr-17로 표현됐던게 2017.4.1로 변경된..
1. format함수와 형식문자를 이용한 데이터 출력 userName = '최윤식' userAge = 31 print('user name : {}, user age: {}'.format(userName, userAge)) #순서 바꾸기 print('user name : {1}, user age: {0}'.format(userName, userAge)) ###format 함수는 {}안에 인덱스 번호를 기입해 순서를 변경할 수 있다. ### #형식문자열 print('user name: %s' % userName) print('user age: %d' % userAge) print('user name: %s, user age: %d' % (userName, userAge)) ##### %s: 문자열, %d: ..
이번 시간은 MySQL의 윈도우함수를 정리해보려고 합니다. 윈도우함수의 특징은 GROUP BY처럼 데이터를 그룹화하여 집계하거나 연산해주는 기능입니다. 다만 GROUP BY는 GROUP BY에 지정해주는 것을 토대로 해당 결과물만 보여주는 반면 윈도우함수는 기존 데이터에 값을 추가하여 나타내주는 게 특징입니다. 윈도우함수의 구조 함수(컬럼) OVER (PARTITION BY 컬럼 ORDER BY 컬럼) 윈도우함수에 들어가는 함수는 다양한 것들이 있는 이부분은 아래에 설명을 해보겠습니다. 괄호 안에 있는 PATITION BY는 GROUP BY 와 비슷한 것이라고 생각하면 됩니다. 즉, PARTITION BY에는 기준이되는 컬럼을 넣는다고 보시면 됩니다. ORDER BY는 당연히 순서를 지정하는 것이겠지요...
https://leetcode.com/problems/consecutive-numbers/ Consecutive Numbers - LeetCode Can you solve this real interview question? Consecutive Numbers - Table: Logs +-------------+---------+ | Column Name | Type | +-------------+---------+ | id | int | | num | varchar | +-------------+---------+ id is the primary key for this table. id is an leetcode.com Input: Logs table: +----+-----+ | id | num | +..
https://www.hackerrank.com/challenges/the-report/problem?h_r=internal-search The Report | HackerRank Write a query to generate a report containing three columns: Name, Grade and Mark. www.hackerrank.com 이번에는 join 구문에서 between절을 활용하는 퀴즈를 풀어보려고 합니다. 흔히 join 구문에서 두 테이블을 매칭 시킬 때 on을 적고 그안에 각각의 테이블에서 매칭 시킬 수 있는 컬럼을 "A.컬럼 = B.컬럼 " 이런식으로 적는게 기본인데요. 하지만 모든 상황과 테이블들이 이 같은 구문으로 해결될순 없겠죠. 그렇기에 하나의 구문에서 어떻게..
https://www.hackerrank.com/challenges/challenges/problem?h_r=internal-search Challenges | HackerRank Print the total number of challenges created by hackers. www.hackerrank.com 이번 문제는 손이 많이 가는 서브쿼리 퀴즈인데요. 우선 예제를 살펴보겠습니다. 네 문제는 Hackers와 Challenges라는 두 테이블을 가지고 문제를 푸는 것입니다. 이 문제가 어려운 이유는 조건인데요. 조건을 간단하게 요약하면 다음과 같습니다. ###조건 조건1. hacker_id 별 name과 challenges의 개수를 구해라 조건2. hacker_id 별 최대 challenges를..
https://leetcode.com/problems/department-highest-salary/ Department Highest Salary - LeetCode Can you solve this real interview question? Department Highest Salary - Table: Employee +--------------+---------+ | Column Name | Type | +--------------+---------+ | id | int | | name | varchar | | salary | int | | departmentId | int | +--------------+--- leetcode.com Input: Employee table: +----+-----..