코드카타 몰랐던 부분
SELECT car_id,
CASE
WHEN max('2022-10-16' BETWEEN START_DATE AND END_DATE) = 1 THEN '대여중'
#SQL에서 between 연산자를 select에 사용하면 btween 앞에 있는 조건과 비교하여 불리언 값을 출력
#대여가 찍혀 있는 car_id의 모든 날짜를 between 조건과 비교하여 조건에 충족하면 1, 충족하지 않으면 0을 출력
#그 값을max()를 함으로써 값이 존재하면 1을 출력 (0,1에서는 1이 최대값)
#max가 없으면 group by의 최상단 값을 출력하고 그 값과 1을 비교
ELSE '대여 가능'
END AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY 1
ORDER BY CAR_ID DESC;
Python FOR 2중 반복문
i='as','assd'
for a in i:
for b in a:
print('w', end='')
print() #들여쓰기 위치가 엄청 중요함 이거 때문에 고생이란 고생은 다 함 ㄱ-
i에 문자열의 !!인덱스 값이!! 들어감.
i에 리스트가 두 개가 존재
i = ('as') 와 ('assd') : 2개 리스트
이 리스트 인자 개개인의 리스트
a=i 'as' 이 as의 (a)와 (s) : 2개 리스트
assd의 a, s, s, d : 4개 리스트
loop | a | b | 출력 | |
1 | 0 'as' 자체의 인덱스 | 0 as의 a 인덱스 | w'' | ww \n |
1 as의 s 인덱스 | w'' | |||
2 | 1 'assd' 자체 인덱스 | 0 a | w'' | wwww\n |
1 s | w'' | |||
2 s | w'' | |||
3 d | w'' |
=> for b in a 의 b 값 만큼!!! print('w', end=' ')를 모두 출력한 후!!!!!!!!!!!!!!!!!!!!!!!! for을 빠져나와서 그 다음의 print()를 출력
FOR문이 이해가 되지 않을때, 위의 표처럼 그려보는 것도 방법.
i=[1,2,3] 처럼 리스트 값인데 2중 문에서 오류가 나는 이유
첫번째 for에서는 순서가 있어 반복할 값이 존재하지만, 두번째 for에서는 첫번째 for문에서 변수에 할당했던!! 정수 하나의 값만 두번째 for문 변수에 할당이 되기 때문에 두번째 for은 반복할 값이 존재하지 않음.
때문에 오류가 남. 에휴 이해하기 오래 걸렸다.
=> 2중 for을 쓰려면 리스트(반복되는 값)가 2개 필요
range() => 값을 생성
as=[1,2] / assd=[1,2,3,4]
간단하게는 ()안에 있는 숫자-1까지 출력 한다고 생각하면 됨
range(-1) => 출력하는 숫자를 반대로 출력
리스트 슬래싱의 -1과 다름
주의사항
IF, ELIF, ELSE, FOR, WHILE 후 무조건 : (콜롬) 잊지말기**IF 쓸 때 들여쓰기 중요**a=() list() => 튜플의 자료형 자체를 바꿔주는 것이 아닌 list 함수를 감싸서 출력. 때문에 list(a)의 a의 자료형은 튜플 자료형을 바꿔주고 싶으면 다른 변수를 선언하여 할당하기. b=[1,2] b.pop(0)<이 자체로 인자를 가지고 있음. 얘만 출력해도 1이 출력 |
코드카타 이해한다고 시간을 너무 잡아먹음..
이럴거면 걍 여쭤보는 게 나을 듯.... 결국 이해한 코드는 1개 뿐임.... 따쉬
for문이 엄청 헷갈렸었는데..... 이제 확실하게 이해함. 하지만 다음에 까먹을 수도..
거의 무조건 while썼어서 for이 안 중요하다고 생각했는데... 엄청 멍청한 생각이었단걸 깨달음..
물론.. 상황 때문도 있었지만.. 암튼...
pass와 continue 차이점과 def가 뭔지 제대로 정리해야겠음.. 이해한 줄 알았는데 다시 보면 엥 싶음
진짜진짜내일정리함.미루지않기