반응형
"구매"라는 테이블에 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
반응형
'MySql' 카테고리의 다른 글
MySQL mysqli query not working when variable inserted (0) | 2020.10.22 |
---|---|
MySQL How does MySQL process ORDER BY and LIMIT in a query? (0) | 2020.10.22 |
MySQL MySql의 테이블에서 마지막 레코드 (조건에 따라)를 삭제하는 방법 (0) | 2020.10.22 |
MySQL : 시간 간 비교 (0) | 2020.10.21 |
MySQL의 열 이름 "order"에 대한 대안 (0) | 2020.10.21 |
댓글