월요일[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는

날짜라는 값을 문자열로 변환하는 것이다
뽑아야할 값들을 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
. 도서관 가서 딴짓 많이 자제하기
. 세끼 잘 챙겨먹고 운동도 하기
. 원하는 목표까지 하기
. 자신감 채우기
. 나를 알기!
'IT To do and To was' 카테고리의 다른 글
22년 11월 2일_2일이네 오늘도 갑니다 (2) | 2022.11.02 |
---|---|
22년 11월 1일_살리고, 살리고 (0) | 2022.11.01 |
22년 10월 30일_오늘도 좋았고, 하나 알았다. (0) | 2022.10.30 |
22년 10월 29일_휴일같은휴일휴은같일휴 (2) | 2022.10.30 |
22년 10월 28일_서막 (0) | 2022.10.29 |