본문 바로가기

IT To do and To was

22년 10월 31일_달리고 살리고

728x90
반응형

월요일[10월의~ 어느 멋진 날에]

 

1. SQL 정리

2. 이것이 후기

3. 오픽

 

1>

SQL공부 정리

 

프로그래머스 코딩테스트 연습

 

테이블 두개를 조인 후 설정 값이 2개인 경우였다.

 

SELECT 리.컬럼명 FROM TABLE 리 

LEFT OUTER JOIN 테이블명 라 ON 라.같은 컬럼명 = 리.같은 컬럼명

WHERE ~~

AND ~~

ORDER BY 리.Z컬럼명 DESC(오름차순)

 

ㅋㅋㅋㅋ나만 알아볼 수 있는 설명이다. 진짜..

다음은 2개의 컬럼에서 ORDERBY를 하는 설정이 2개인 경우

 

생각보다 간단하다

 

SELECT 조회하려는 컬럼명 FROM 테이블명

ORDER BY 오름차순할 컬럼명 ASC , 내림차순할 컬럼명 DESC

 

다음은 카운트를 사용한 GROUP BY와 HAVING절을 사용하는 테스트 였다.

 

SELECT 컬럼명 FROM 테이블명

GROUP BY 그룹핑할 컬럼명1, 그룹핑할 컬럼명2

HAVING COUNT(*) >= 2 

ORDER BY 오름차순할 컬럼명 ASC , 내림차순할 컬럼명 DESC

 

 

마지막은 두개의 얼추 똑같이 생긴 테이블을 가지고 UNION ALL을 갖고 값을 한번에 가지고 오는 쿼리인데, 집중력 부족..으로 정답지를 보고 이해하는 방식으로 하겠다.

 

SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
  FROM (
      SELECT TO_CHAR(SALES_DATE, 'YYYY-MM-DD') AS SALES_DATE
               , PRODUCT_ID
               , USER_ID
               , SALES_AMOUNT
        FROM ONLINE_SALE
        WHERE TO_CHAR(SALES_DATE, 'YYYYMM') = '202203'
    UNION ALL
        SELECT TO_CHAR(SALES_DATE, 'YYYY-MM-DD') AS SALES_DATE
               , PRODUCT_ID
               , NULL AS USER_ID
               , SALES_AMOUNT
          FROM OFFLINE_SALE 
          WHERE TO_CHAR(SALES_DATE, 'YYYYMM') = '202203'
  )
 ORDER BY SALES_DATE, PRODUCT_ID, USER_ID

먼저 뽑아야 할 것을 빼는데, TO_CHAR는

출처 : https://gent.tistory.com/331

날짜라는 값을 문자열로  변환하는 것이다

뽑아야할 값들을 SELECT절에 넣고, 

분별하는 코드를 넣었는데.. 왜 안되지...

 

정답지

select
    date_format(sales_date, '%Y-%m-%d') as sales_date,
    product_id,
    user_id,
    sales_amount
from online_sale
where month(sales_date) regexp '^3'
union
select
    date_format(sales_date, '%Y-%m-%d') as sales_date,
    product_id,    
    null as user_id,
    sales_amount
from offline_sale
where month(sales_date) regexp '^3'
order by sales_date asc, product_id asc, user_id asc;

형식은 비슷한데, MONTH안에 넣고 regexp라는 정규표현식을 썼다. 또 to_char가 아닌 데이터 포맷으로 %를 써서 분멸하였다.

 

..쳇

 

참고 자료 :https://extbrain.tistory.com/56

 

[MySQL] 그룹화하여 데이터 조회 (GROUP BY)

▶MySQL 그룹화하여 데이터 조회 (GROUP BY) ▶설명 하나, 예를 들어보겠습니다. MySQL에서 유형별로 갯수를 가져오고 싶은데, 단순히 COUNT 함수로 데이터를 조회하면 전체 갯수만을 가져옵니다. 이렇

extbrain.tistory.com

 

2>

이것이 

기초 파이썬 문법부터 짚고 넘어가야할 거같아서 

짚고 넘어가고 있는데, 자바를 하다보니 많이 헷갈린다.

 

파이썬으로 코테를 준비하는게 좋다는데, 정말 그럴까.. 괜찮겠지..

 

비슷하지만 달라서 더 헷갈리는 거 같기도 하지만, 짧은 시간 밖에 안했으니 속단하지 말자

 

0.3+0.6을하면 파이썬에서는 0.8999라고 나온다.

 

그래서 0.9를 보이고 싶으면 round(변수이름, 1)을 기입해야한다.

두번째짜리를 반올림하고싶으면 2번째 아규먼트를 2로 하면 된다.

 

a = [1] *3 을 할 경우

 

a = [1,1,1]이 된다.

 

그리고 변수의 값을 for문에 서 대체할 수 있다

예시 )

for _ in range(3):

print("hello world")

 

-----

hello world

hello world

hello world

 

리스트 오름차순으로 하고싶을 때는 

 

변수명.sort(reverse=True)

변수명.reverse()

 

으로 하면 됨

 

if문 안에 해당 조건에 해당하는 것에 대한 명령을 따로 내리지 않을 땐 

pass로 기입하면 넘어감.

 

혹은 바로 기입할 수 있음

 

예시 )

 

a = 70

 

if a > 60:

    pass

 

if a >60: result = "success"

 

set이나, 리스트 2개 중 하나의 테이블에 있는 값을 빼는 방법 1~

 

 a = [1,2,3,4,5,6,7,8,9]

aremove = [2,4,6,8]

 

result = [i for i in a if i not in aremove]

 

set이나, 리스트 2개 중 하나의 테이블에 있는 값을 빼는 방법 2~

 

result = []

for i in a :

    if i not in aremove:

        result.append(i)

 

print(result)

 

//yesterday wished to today list

. SQL 공부(2시간)_완료

. 이것이 코딩 테스트다 공부(5시간)_완료

. opic 공부 (1시간) _자기 전에 하겠씁다..!

. 알고리즘 공책과 오픽 공책사기_구매 완료

. 화요일에 도서관 가기_확인

 

 

tomorrow wish list

 

. 도서관 가서 딴짓 많이 자제하기

. 세끼 잘 챙겨먹고 운동도 하기

. 원하는 목표까지 하기

. 자신감 채우기

. 나를 알기!

728x90
반응형