수량 + 가격 복합 계산 0 2 991

by ekujb [MySQL] [2014.07.01 21:47:21]


MySQL입니다.

index price count
1 100 5
2 50 6
3 1000 7
4 500 10
5 200 0
6 2000 4
7 10 8
8 600 2
9 300 1

위와 같은 데이터를 price를 내림차순으로 정렬하고 총 20개의 수량(count 누적)에 대한 총 가격 (price * count) 를 구하고 싶은데 어렵네요.

즉 select price, count from xxx order by price desc; 하면 (2000, 4), (1000, 7), (600, 2), (500, 10), ....... 이렇게 나올텐데 500을 누적 카운트 20에서 짤리는 7만 적용하고 (2000 * 4) + (1000 * 7) + (600 * 2) + (500 * 7) 값만 계산하는 겁니다...

머리에 쥐나네요 ㅠㅠ

고수님들의 조언 부탁드립니다~

by 마농 [2014.07.02 08:37:09]
SELECT SUM(prc * cnt1) amt
  FROM (SELECT idx, prc, cnt
             , LEAST(cnt, @cnt) cnt1
             , @cnt := @cnt - LEAST(cnt, @cnt)
          FROM (SELECT 1 idx, 100 prc, 5 cnt
                UNION ALL SELECT 2,   50,  6
                UNION ALL SELECT 3, 1000,  7
                UNION ALL SELECT 4,  500, 10
                UNION ALL SELECT 5,  200,  0
                UNION ALL SELECT 6, 2000,  4
                UNION ALL SELECT 7,   10,  8
                UNION ALL SELECT 8,  600,  2
                UNION ALL SELECT 9,  300,  1
                ) a
             , (SELECT @cnt := 20) b
         ORDER BY prc DESC, idx
        ) a
;

 


by ekujb [2014.07.02 10:51:33]

이런 방법이 있군요~

감사합니다~ 꾸뻑~!!

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