maria db 사용 중인데 궁금한게 있어서 질문드립니다. 0 3 2,123

by 민가놈 [SQL Query] mariadb query select [2023.08.14 16:48:12]


현재 조회 쿼리 작성 중인데

 

이게 가능 한지도 모르겠습니다.

 

조건은 타임이라는 컬럼이 있는데 1,2,3~~N 까지 있고

ID는 각각의 타임을 갖습니다.

테이블은

time id

0 a

1 a

2 a

3 a

...n a

0 b

1 b

2 b

3 b

...n b

 

이런식으로 있는데 제가 조회 하고 싶은건

 

a라는 전체 조회 수 나누기 20 한 값을 조회하고 싶습니다.

가령 N이라는 값이 2000이면 2000/20 해서 총 100 단위로 출력 하고 싶습니다.

 

a 0, 100, 200, -- 2000

b 0, 150, 300, -- 3000

이게 쿼리로 출력이 가능 할련지 쉽지 않네요

 

서버 단에서 좀 처리하고 들어가야 할지 어떨까요

 

by 마농 [2023.08.16 00:50:09]
WITH t AS
(
SELECT 'a' id, seq - 1 tm FROM seq_1_to_201
UNION ALL SELECT 'b', seq - 1 FROM seq_1_to_301
)
SELECT id
     , MIN(CASE tm / unit WHEN  0 THEN tm END) tm_00
     , MIN(CASE tm / unit WHEN  1 THEN tm END) tm_01
     , MIN(CASE tm / unit WHEN  2 THEN tm END) tm_02
     , MIN(CASE tm / unit WHEN  3 THEN tm END) tm_03
     , MIN(CASE tm / unit WHEN  4 THEN tm END) tm_04
     , MIN(CASE tm / unit WHEN  5 THEN tm END) tm_05
     , MIN(CASE tm / unit WHEN  6 THEN tm END) tm_06
     , MIN(CASE tm / unit WHEN  7 THEN tm END) tm_07
     , MIN(CASE tm / unit WHEN  8 THEN tm END) tm_08
     , MIN(CASE tm / unit WHEN  9 THEN tm END) tm_09
     , MIN(CASE tm / unit WHEN 10 THEN tm END) tm_10
     , MIN(CASE tm / unit WHEN 11 THEN tm END) tm_11
     , MIN(CASE tm / unit WHEN 12 THEN tm END) tm_12
     , MIN(CASE tm / unit WHEN 13 THEN tm END) tm_13
     , MIN(CASE tm / unit WHEN 14 THEN tm END) tm_14
     , MIN(CASE tm / unit WHEN 15 THEN tm END) tm_15
     , MIN(CASE tm / unit WHEN 16 THEN tm END) tm_16
     , MIN(CASE tm / unit WHEN 17 THEN tm END) tm_17
     , MIN(CASE tm / unit WHEN 18 THEN tm END) tm_18
     , MIN(CASE tm / unit WHEN 19 THEN tm END) tm_19
     , MIN(CASE tm / unit WHEN 20 THEN tm END) tm_20
  FROM (SELECT id, tm
             , FLOOR(MAX(tm) OVER(PARTITION BY id) / 20) unit
          FROM t
        ) a
 WHERE tm % unit = 0
 GROUP BY id
;

 


by 민가놈 [2023.08.16 09:06:21]

잘 응용 및 사용 하겠습니다. 맨날 쿼리 관련 검색할 때마다 나오던 분인데

답변 직접 받으니 신기하네요 감사합니다


by 아발란체 [2023.08.17 13:36:19]

유명인 맞아용 ㅋㅋ 국내 1위 컴퓨터 잡지 마이크로소프트웨어 기술 커럼도 아주 오랫동안 담당하셨지용 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입