인프런 커뮤니티 질문&답변

hunter님의 프로필 이미지

작성한 질문수

장래쌤과 함께하는 쉽고 재미있는 SQL 이야기

주차별 데이터에서 전 주 데이터 가져오기

24.08.12 11:26 작성

·

46

0

안녕하세요, 질문드립니다!

 

week. date. 값

31 2024-08-02 A

31 2024-08-03 A

32 2024-08-07 B

32 2024-08-08 C

 

위와 같이 주차별로 쌓여있는 테이블에서 현재 주차가 32주차라고 가정하면

32주차의 값을 가져오는게 아니라 저번주 차의 값을 가져오고싶습니다.

원래 대로라면 32주차 (B 값 1개) 가 분모가 되겠지만

31주차 (A 값 2개) 로 가져오고 싶습니다ㅠ 방법이 있을까요

답변 1

0

장래쌤님의 프로필 이미지
장래쌤
지식공유자

2024. 08. 12. 15:17

안녕하세요?

우선, 상당히 많은 쿼리문을 질문하시는 데, 어떤 상황에서의 질문인지 궁금합니다.

혹시 제가 질문하시는 분이 더 깊이 생각해 볼 기회를 빼앗는 것은 아닌지,

너무 쉽게 답을 찾게 하는 것은 아닌지 염려가 됩니다.

제 강의의 일부만 보신 것 같아 더욱 염려가 됩니다.

 

질문하신 내용에 대해 제가 이해하는 수준에서 예제를 만들어 봤습니다.

오늘의 주차에서 1을 뺀 주차를 갖는 행을 찾는 WHERE 절을 사용했습니다.

아래 내용을 참고하시기 바랍니다.

DROP TABLE IF EXISTS test;
-- 테이블 만들기
CREATE TABLE test (
    week int,
    date date,
    val char(1)
);

-- 데이터 추가
INSERT INTO test VALUES(32, '2024-08-08', 'A'),
                       (32, '2024-08-09', 'A'),
                       (33, '2024-08-12', 'B'),
                       (33, '2024-08-13', 'C');

-- 조회
SELECT *
    FROM test
    WHERE WEEK(date) =  WEEK(CURRENT_DATE) - 1;

/*
week	date	val
-------------------
32	2024-08-08	A
32	2024-08-09	A
*/

감사합니다.

hunter님의 프로필 이미지
hunter
질문자

2024. 08. 15. 21:33

선생님 이제 확인해서 답변드립니다!

우선 선생님 강의를 들으면서 혼자서 만들어보거나 혹은 실무에서 활용하면서 해결이 안되는 부분을 질문드리고 있습니다

저도 공부하는 입장이라 모르는 부분이 생기자마자 질문을 드리고있지는 않습니다! 선생님께서 염려해주신 부분에 대해 감사의 말씀드립니다, 하지만 최대치의 할 수 있는만큼 시도해 본 후 선생님께 질문드린 사항을 바탕으로 인사이트를 얻어 해결하고 있습니다

강의는 틈틈히 잘 듣고 있습니다! 항상 진심으로 질문 답변해주셔서 감사합니다 많이 배워가고 있습니다

장래쌤님의 프로필 이미지
장래쌤
지식공유자

2024. 08. 15. 22:08

안녕하세요?

제가 궁금해 했던 부분에 대해 답변해 주셔서 감사합니다.

아무쪼록 더운 날씨에 건강히 잘 지내시길 바랍니다~

hunter님의 프로필 이미지

작성한 질문수

질문하기