mysql select 쿼리를 사용하여 다음 행의 후속 열의 합계를 가져오는 방법
재고 입력을 위해 SQL 쿼리를 하나 작성합니다.마지막 란에는 지난 주식 매입 총액이 필요합니다.
S No Product Code Qty Qty Total
1 PO1 5 5
2 PO1 12 17
3 PO1 10 27
4 PO1 8 35
5 PO1 9 44
6 PO1 16 60
마지막 열의 모든 행에 이전 수량을 추가합니다. 예를 들어 S 1번 수량은 5번입니다.S 2번에 수량 5와 12=17을 추가합니다.S No 3 5 + 12 + 10 = 27과 Soon을 추가합니다.
중복 질문이라면 죄송합니다.구글과 스택 오버플로우를 검색해 보았지만 답변을 받지 못했습니다.저는 MySQL을 처음 접합니다. 아래에 쿼리를 추가했습니다.SQL은 처음이라 도움을 주시면 감사하겠습니다.
미리 감사드립니다.
CREATE TABLE `stock_table` (
`ID` int(11) NOT NULL,
`product_code` varchar(20) NOT NULL,
`qty` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `stock_table` (`ID`, `product_code`, `qty`) VALUES
(1, 'PO1', 5),
(2, 'PO1', 12),
(3, 'PO1', 10),
(4, 'PO1', 8),
(5, 'PO1', 9),
(6, 'PO1', 16);
당신은 총합이 필요합니다.MySQL v 8.0을 사용하는 경우 SUM window 기능을 사용할 수 있습니다 -
SELECT `ID`,
`product_code`,
`qty`,
SUM(`qty`) OVER (PARTITION BY `product_code` ORDER BY `ID`) Qty_Total
FROM `stock_table`;
MariaDB 버전은 창 기능을 지원하지 않습니다.그러면 두 가지 선택지가 남습니다.하나는 상관 관계가 있는 하위 쿼리이고, 두 번째는 변수입니다.
첫 번째는 구현하기가 더 쉽습니다.
select st.*,
(select sum(st2.qty)
from stock_table st2
where st2.product_code = st.product_code and
st2.id <= st.id
) as running_qty
from stock_table st;
성능을 위해 다음 항목에 대한 인덱스를 사용할 수 있습니다.stock_table(product_code, id, qty)
.
행이 증가함에 따라 상관된 하위 쿼리를 사용하여 원하는 열을 합산할 수 있습니다.ID
값 :
select t.*,
( select sum(`qty`) from `stock_table` where `ID` <= t.`ID` ) as "Qty Total"
from `stock_table` t
order by t.`ID`;
추신: 샘플 데이터가 고유하므로product_code
value, 나는 관련된 부분을 포함할 필요가 없었습니다.product_code
하위 쿼리 내에서 열이 일치하는 경우, 파생된 열을 다음으로 변환하는 것을 고려해 보십시오.
( select sum(`qty`)
from `stock_table`
where `ID` <= t.`ID`
and `product_code` = t.`product_code` ) as "Qty Total"
언급URL : https://stackoverflow.com/questions/57769194/how-to-get-subsequent-total-of-column-in-next-row-using-mysql-select-query
'prosource' 카테고리의 다른 글
로컬 파일에서 XSL 변환을 수행하도록 Chrome을 만들 수 있습니까? (0) | 2023.09.10 |
---|---|
Pandas DataFrame의 구조(데이터가 아닌)만 복사할 수 있는 방법이 있습니까? (0) | 2023.09.10 |
MariaDB: default 절에서 함수를 사용하는 방법? (0) | 2023.09.10 |
where 절의 mySQL regex (0) | 2023.09.10 |
jQuery를 사용하여 수동으로 양식 유효성 검사 트리거링 (0) | 2023.09.10 |