TIL

2024-04-12

여연찌 2024. 4. 12. 17:08
  • Today

1. SQL 코드카타 복습

2. 알고리즘 코드카타 복습


  • Today I Learned

SQL

SELECT 절에서 서브쿼리_IF 문

SELECT car_id
     , IF (car_id IN (
SELECT car_id
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE start_date <= '2022-10-16' AND end_date >= '2022-10-16'
         ), "대여중" , "대여 가능") VAILABILITY  # +1 을 더했더니 오류
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY 1
ORDER BY 1 DESC

당일 대여 당일 반납에 꽂혀서 아묻따 날짜 옆에 +1 했더니 오류가 떴다..

 

IF (car_id IN (
SELECT car_id
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE start_date <= '2022-10-16' AND end_date >= '2022-10-16'
         )+1, "대여중" , "대여 가능")

>> 이렇게 했으니 잘 못 나오는게 당연했음...

그래도 SELECT 절 서브쿼리도 조금은 익숙해진 듯 싶다..

하지만 이 문제만 풀 수 있을 것 같으므로 SELECT 절 서브쿼리 문제를 조금더 풀어봐야 할 듯 함

 

 

UNION ALL

SELECT FLAVOR
FROM
(SELECT *
FROM first_half
UNION ALL
SELECT *
FROM july) a
GROUP BY 1
ORDER BY SUM(total_order) DESC
LIMIT 3

# 아이스크림 별 총 주문량을 구하기 위해 GROUP BY 와 UNION ALL 사용

 

컬럼 갯수와 이름이 같은 테이블 2개를 UNION ALL 하게되면

같은 컬럼에 데이터가 입력된다

FIRST_HALF 테이블

JULY 테이블

UNION ALL

 

* UNION

# 중복값을 제외하고 출력해준다

 

 

SQL 에서의 세미콜론(;)

어떤 상황에서 쓰는 것인지 궁금했는데

단일 쿼리가 아닌 여러개의 쿼리가 들어가 있을 때에는 구분을 해주어야 하기 때문에 세미콜론이 들어가야한다고 한다

습관적으로 쿼리문 끝에 세미콜론을 넣어야 겠다!

 

 


파이썬

콜라츠 추측

def solution(num):
    answer = 0
    while num != 1:
        if num%2==0:
            num /= 2
        else:
            num = num*3+1
        answer += 1     # 여기부터 막힘
        if answer == 500:
            return -1
    return answer

성공적으로 while 구문 까지는 잘 떠올렸는데

answer += 1 변화문 구문부터 막혔다

answer += num 을 쓰는 바람에 오답파티~~

 

변화문은 위에 조건이 만족할경우 입력해주는 것!!

다음에는 잘 풀어보자~~

 

 

배열 중 제일 작은 수 제거하기

def solution(arr):
    if len(arr)==1:
        del arr[0]
        arr.append(-1)  
    elif len(arr)>=2:
        arr.remove(min(arr)) ## remonve[min(arr)] 로 적어서 오류
    return arr

remove문법이 조금 헷갈렸다 .. 

다음에 풀면 잘 풀 수 있을 듯 !!

 

 

가운데 글자 가져오기

def solution(s):
    answer = ''
    if len(s)%2==0:
        answer = s[len(s)//2 -1 : len(s)//2 +1]
    else:
        answer = s[len(s)//2]
    return answer

슬라이싱 결과가 아직 익숙하지 않은 듯

 

[start : end]

>> start 부터 end-1 까지

s = "abcde"
s[len(s)//2-1 : len(s)//2+1]
>> s[5//2-1 : 5//2+1]
>> s[1:3]
>> "bc"

s[len(s)//2]
>> s[5//2]
>> s[2]
>> "c"


s = "qwer"
s[len(s)//2-1 : len(s)//2+1]
>> s[4//2-1 : 4//2+1]
>> s[1:3]
>> "we"

s[len(s)//2]
>> s[4//2]
>> s[2]
>> "e"

  • Next

1. 본캠프

2. 일주일 계획 작성

 

 

 

 

'TIL' 카테고리의 다른 글

2024-04-16  (1) 2024.04.16
2024-04-15  (0) 2024.04.15
2024-04-11  (0) 2024.04.11
2024-04-09  (0) 2024.04.09
2024-04-08  (0) 2024.04.08