오늘 학습한 내용은 아래와 같다.
1. datediff
select datediff( '**' ,end_date, start_date)
end_date와 start_date 사이의 시간 차이를 구해준다.
기본값은 일 수
** 안에는 아래와 같은 인자들이 들어갈 수 있다.
2. window function (continued)
열의 연산이 아닌 행의 연산을 수행해주는 윈도우 함수.
윈도우 함수의 장점은 쿼리를 간단히 작성할 수 있다는 점이다.
그러나 행과 행의 연산을 수행하다 보니, 기본적으로 정렬 (Sort)의 과정이 들어간다.
이 뜻은 SQL의 연산 능력 저하를 뜻하기도 하며,
테이블 스캔 횟수가 여타 집계 함수보다 적다는 이유로 무조건 윈도우 함수를 쓰는 것은 옳지 못하다.
기본적으로 스캔해야 할 행의 수를 줄이고 (서브 쿼리나 Join을 활용해) 성능 저하에 주의하며 써야한다.
3. combinations (python)
from itertools import combinations
from itertools import permutations
def solution(number):
combi = list(combinations(number,3))
answer = 0
for element in combi:
if sum(element) == 0:
answer+=1
return answer
프로그래머스의 "삼총사" 문제를 위와 같이 풀었다.
'오늘 나는 (TIL)' 카테고리의 다른 글
[TIL 240703] 돌아온 List()Map()Lambda(), Sorted() & Sort(), 알파벳 리스트 구하기 (0) | 2024.07.03 |
---|---|
[TIL 240702] Why SQL over Excel? (0) | 2024.07.02 |
[TIL 240628] Pivot Table, Window Function (0) | 2024.06.28 |
[TIL 240627] union, update, insert, delete, multiple_join (0) | 2024.06.27 |
[TIL 240626] Where 절과 Having 절, Inline View, Scalar Subquery (0) | 2024.06.26 |