본문 바로가기
MySql

MySQL에서 ID가 유사한 행에 대한 열 곱셈의 합계

by 베이스 공부 2020. 10. 22.
반응형

"구매"라는 테이블에 3 개의 열이 있습니다.

id         amount         price
2          2              21
2          5              9
3          8              5

비슷한 ID를 가진 모든 행을 그룹화하고 결과적으로이 배열을 갖고 싶습니다.

array([0] => [id => 2, total => 87 (because 2*21+5*9=87)], [1] => [id => 3, total => 40 (because 8*5=40)])

유사한 ID를 가진 행에 대한 SUM (amount * price)의 총 계정 으로.

나는 사용해 보았다

SELECT id, SUM(p.price*p.amount) total FROM purchases p GROUP by p.id

그러나 그것은 잘 작동하지 않습니다 (즉, 내가 원하는 것을 얻지 못합니다. mysql에서 이것을 수행하는 방법에 대한 아이디어가 있습니까?

쿼리가 반환하는 내용의 예 :

    id         amount         price
    2          3              89
    2          3              19

    SELECT id, SUM(p.price*p.amount) total FROM purchases p GROUP by p.id

==> [id => 2, total => 183]

 

해결 방법

 

SELECT
id, 
SUM(amount*price) AS total
FROM mytable
GROUP BY id

데이터:

| id | amount | price |
|----|--------|-------|
| 2  | 3      | 19    |
| 2  | 3      | 89    |
| 3  | 203    | 1     |

결과:

id  total
2   324
3   203

 

참조 페이지 https://stackoverflow.com/questions/4712026

 

 

반응형

댓글