select max(salary) as SecondHighestSalary -- max()의 역할 중요!
from (
select *,
row_number() over(order by salary desc) rn
from employee
) a
where rn = 2
⭐️⭐️ max()의 역할
rn=2인 행이 없을 경우 max() 값 역시 존재하지 않음.
이 때, 그냥 salary를 해주면 그냥 행 자체가 없기 때문에 아무것도 출력되지 않지만,
max(salary)를 해주면 max()값이 존재하지 않은 것이기 때문에 null을 출력해준다.
2. Python
2-1. 기초 과제
1) replace
def str_replace(text, old, new) :
if not text or not old: #원본 문자열이 없거나 text에 대체할 문자열이 없는 경우
return text
text_len = get_len(text)
old_len = get_len(old)
start=0 # 반복 시작 인덱스 설정
new_text = '' # 새로 넣어줄 빈 매개변수 생성
while start < text_len: # 중요! 인덱스가 text문자열 길이보다 작을 때까지만 반복해라.
if text[start:start+old_len] == old: # old문자열이랑 같으면
new_text += new # new로 대체
start += old_len # 시작 인덱스 재설정 (old 문자열 길이만큼 뒤에서부터)
else:
new_text += text[start] # 원래 text대로 출력
start += 1 # 시작 인덱스 재설정 (바로 뒤 문자열부터)
return new_text
2) strip
def str_strip(text, remove_ch) :
if not text or not remove_ch:
return text
start = 0 # 앞부분 시작 인덱스
while start < get_len(text) and text[start:start+get_len(remove_ch)] == remove_ch:
start += get_len(remove_ch)
end = get_len(text) -1 # 뒷부분 시작 인덱스
while end >= 0 and text[end-get_len(remove_ch)+1:end+1] == remove_ch:
end -= get_len(remove_ch)
return text[start:end+1]
print(str_strip('----hello--', '-')) # 'hello'
print(str_strip('----hello--', '--')) # 'hello'
문자/문자열일 경우 모두 실행 가능한 함수로 응용해보았다.
비교할 text의 범위(?) 지정하는 게 약간 어려웠으나 차근차근..!
⭐️ 주의할 점 이렇게 하면 무한루프에 빠진다. 이유 : text[start] 값이 remove_ch 와 다를 경우 조건을 만족하지 않기 때문에 start는 변하지 않고 계속 0이다. 그렇다고 else 문도 없기 때문에 start는 영원히 0일 수밖에 없음. 그 상태로 무한 루프 . . . . ♾️
3) title
def str_title(text) :
if not text:
return text
first_code = ord(text[0]) # 첫번째 문자
if 97 <= first_code <= 122: # 첫번째 문자가 소문자이면
return chr(first_code-32)+text[1:] # 대문자로 바꾸고 나머지 문자 그대로 출력
return text # 조건에 해당하지 않으면 text 그대로 출력
⭐️⭐️ 표준정규분포 ⭐️⭐️ ✔︎ 분포의 평균과 표준편차가 각각 0, 1인 분포 ! 즉, 표준화를 거친 Z값의 분포 ✔︎ 표준화 하는 이유 : X값의 스케일이 다를 경우 절대치를 있는 그대로 받아들여 동등하게 분석할 수 없음, X값이 얼마나 흩어져있는지 즉 표준편차에 따라 값의 의미가 달라질 수 있음 → Z값으로 표준화해서 동일한 기준으로 비교하자. ✔︎ 표준화 공식 (확률변수 X값 - 평균) / 표준편차 ☞ 평균에서 얼마나 떨어져있는지 그 거리를 구하고, 그 값을 표준편차 비율로 나타낸다. = 제각각인 평균, 표준편차를 통일시키면서 하나의 분포로 합체(?)해서 Z값을 비교한다. ✔︎ 신뢰수준, Z-Score 이상치 탐색과 연결