SELECT tweet_id
FROM tweets
WHERE LENGTH(content) > 15SELECT u.unique_id, e.name
FROM employees e
LEFT JOIN employeeuni u
ON e.id = u.idSELECT p.product_name, s.year, s.price
FROM sales s
LEFT JOIN product p
ON s.product_id = p.product_idSELECT v.customer_id, count(*) as count_no_trans
FROM visits v
LEFT JOIN transactions t
ON v.visit_id = t.visit_id
WHERE t.transaction_id IS NULL
GROUP BY 1SELECT t.id
FROM weather t
LEFT JOIN weather y
ON t.recorddate = y.recorddate + 1
WHERE t.temperature > y.temperatureSELECT machine_id, round(AVG(time),4) AS processing_time
FROM
(
SELECT *,
LEAD(timestamp) OVER(ORDER BY machine_id, process_id, activity_type) as lead_tmp,
LEAD(timestamp) OVER(ORDER BY machine_id, process_id, activity_type) - timestamp as time
FROM activity
) A
WHERE activity_type = 'start'
GROUP BY 1SELECT e.name, b.bonus
FROM employee e
LEFT JOIN bonus b
ON e.empID = b.empID
WHERE b.bonus < 1000
OR b.bonus IS NULLSELECT T.id
FROM weather t
LEFT JOIN weather y
ON t.recorddate = y.recorddate + 1
WHERE t.temperature > y.temperatureSELECT id
FROM
(
SELECT *,
lag(temperature) over(order by recorddate) as lag_temp
FROM weather
) A
WHERE temperature > lag_temp| id | recordDate | temperature |
|---|---|---|
| 1 | 2015-01-01 | 10 |
| 2 | 2015-01-02 | 25 |
| 3 | 2015-01-03 | 20 |
| 4 | 2015-01-04 | 30 |
| id | recordDate | temperature | lag_temp |
|---|---|---|---|
| 1 | 2015-01-01 | 10 | NULL |
| 2 | 2015-01-02 | 25 | 10 |
| 3 | 2015-01-03 | 20 | 25 |
| 4 | 2015-01-04 | 30 | 20 |
스터디를 진행할 강의를 링크해주세요.
강의에서 필수로 사용되는 문법에 대한 개념을 요약해주세요.
순위
컬럼 1 ORDER BY 컬럼 2)컬럼 1별로컬럼 2 순서대로 정렬했을 때 순위select *,
rank() over(partition by JOB order by SALARY DESC) as RANK
from basic.window1
| ID | JOB | SALARY | RANK |
|---|---|---|---|
| A | teacher | 10000 | 1 |
| B | teacher | 10000 | 1 |
| C | teacher | 7000 | 3 |
| D | actor | 5000 | 2 |
| E | actor | 6000 | 1 |
컬럼 1 ORDER BY 컬럼 2)컬럼 1별로컬럼 2 순서대로 정렬했을 때 순위# 윈도우 함수 - DENSE_RANK 함수 예제
select *,
dense_rank() over(partition by JOB order by SALARY DESC)
from basic.window1
| ID | JOB | SALARY | DENSE_RANK |
|---|---|---|---|
| A | teacher | 10000 | 1 |
| B | teacher | 10000 | 1 |
| C | teacher | 7000 | 2 |
| D | actor | 5000 | 2 |
| E | actor | 6000 | 1 |
컬럼 1 ORDER BY 컬럼 2)컬럼 1별로컬럼 2 순서대로 정렬했을 때 순위# 윈도우 함수 - ROW_NUMBER 함수 예제
select *,
ROW_NUMBER() over(partition by JOB order by SALARY DESC) AS ROW_NUMBER
from basic.window1
| ID | JOB | SALARY | ROW_NUMBER |
|---|---|---|---|
| A | teacher | 10000 | 1 |
| B | teacher | 10000 | 2 |
| C | teacher | 7000 | 3 |
| D | actor | 5000 | 2 |
| E | actor | 6000 | 1 |
순서
컬럼 1) OVER(PARTITION BY 컬럼 2 ORDER BY 컬럼 3)컬럼 2별로컬럼 3 순서대로 정렬했을 때컬럼 1# 윈도우 함수 - FIRST_VALUE 함수 예제
select *,
first_value(NAME) over(partition by JOB order by SALARY)
from basic.window1 컬럼 1) OVER(PARTITION BY 컬럼 2 ORDER BY 컬럼 3)컬럼 2별로컬럼 3 순서대로 정렬했을 때컬럼 1# 윈도우 함수 - LAST_VALUE 함수 예제
select *,
last_value(NAME) over(partition by JOB order by SALARY)
from basic.window1 컬럼 1, N) OVER(PARTITION BY 컬럼 2 ORDER BY 컬럼 3)컬럼 2별로컬럼 3 순서대로 정렬했을 때N번째 이전 행의 컬럼 1컬럼 1, N) OVER(PARTITION BY 컬럼 2 ORDER BY 컬럼 3)컬럼 2별로컬럼 3 순서대로 정렬했을 때N번째 이후 행의 컬럼 1비율
컬럼 1) OVER(PARTITION BY 컬럼 2 ORDER BY 컬럼 3)컬럼 2별로컬럼 3 순서대로 정렬했을 때컬럼 1 의 PERCENT_RANK 값 = 0컬럼 1 별로 RANK 함수 적용 시 값 부여컬럼 1 RANK 값 / (총 레코드 수 - 1)# 윈도우 함수 - PERCENT_RANK 함수 예제
select *
, PERCENT_RANK() OVER (partition by JOB order BY SALARY DESC) AS PERCENT_RANK
from basic.window1
| ID | JOB | SALARY | PERCENT_RANK 변환 전 | PERCENT_RANK |
|---|---|---|---|---|
| A | teacher | 10000 | 0 | 0 |
| B | teacher | 10000 | 0 | 0 |
| C | teacher | 7000 | 2 | 0.5 |
| D | actor | 5000 | 1 | 1 |
| E | actor | 6000 | 0 | 0 |
# 윈도우 함수 - PERCENT_RANK 함수 예제
select *
, PERCENT_RANK() OVER (order BY SALARY DESC) AS PERCENT_RANK
from basic.window1
| ID | JOB | SALARY | PERCENT_RANK 변환 전 | PERCENT_RANK |
|---|---|---|---|---|
| A | teacher | 10000 | 0 | 0 |
| B | teacher | 10000 | 0 | 0 |
| C | teacher | 7000 | 2 | 0.5 |
| D | actor | 5000 | 4 | 1 |
| E | actor | 6000 | 3 | 0.75 |
컬럼 2 ORDER BY 컬럼 3)컬럼 2별로컬럼 3 기준 줄 세우기컬럼 3 기준 상위 몇 %인지 출력N) OVER(PARTITION BY 컬럼 1 ORDER BY 컬럼 2)컬럼 1별로컬럼 2 순서대로 정렬했을 때N등분하여 순위 부여컬럼 1) OVER(PARTITION BY 컬럼 2 ORDER BY 컬럼 3)WITH 구문

그 밖의 함수들


