source

SQL 쿼리는 열 값이 테이블 B에 없을 때 테이블 A에서 행을 가져와 테이블 B에 저장할 것을 계산합니다.

manysource 2023. 9. 7. 21:49

SQL 쿼리는 열 값이 테이블 B에 없을 때 테이블 A에서 행을 가져와 테이블 B에 저장할 것을 계산합니다.

하나는 라고 합니다.

trades

다른 하나는 다음과 같이 불립니다.

yields

거래 열은 다음과 같습니다.

common_id (which marks the trades that belong together)
type (buy or sell)
amount

수율은 다음 열을 갖습니다.

common_id (which is the one from trades but will only appear once now)
yield

수익률 필드는 다음과 같이 계산됩니다. 만약 거래가 "매수"라면, 거래가 "매도"라면, 그 값이 추가됩니다.

따라서 기본적으로 common_id 필드가 보여주는 몇 가지 거래가 함께 속합니다.저는 그 거래를 통해서 수익률을 계산하고 싶습니다.
그런 다음 함께 속한 다음 거래 등에 대해서도 동일하게 수행합니다.

여기 문제가 있습니다."무역" 테이블은 처음에는 구축되어 매우 커질 수 있으며, 그 후에는 두 번째 테이블 "수익률"을 구축하고자 합니다.초기 빌드업을 위해서는 이 작업이 쉽습니다.문제는 애플리케이션이 중단되고 테이블이 이미 두 개 다 있는데 어떻게 해야 하나요.

그래서 저는 "수익률"에 아직 없는 common_ids를 가진 "거래"의 기록이 필요합니다. 그 후에 저는 수익률을 계산하고 "수익률"에 저장합니다.

생각나는 사람?

안부 전해요

당신은 이 일을 한 번에 해결할 수 있습니다.insert문:

INSERT INTO yields
(SELECT   common_id, SUM (CASE type WHEN 'buy' THEN -1 * amount
                                    WHEN 'sell' THEN amount
                                    ELSE 0 -- just a precaution
                          END)
 FROM     trades
 WHERE    common_id NOT IN (SELECT common_id FROM yields)
 GROUP BY common_id)

저는 테이블 수율을 삭제하고 처음에 다시 쌓을 것입니다.가장 쉬운 방법이며 모든 라인을 통과하는 것보다 더 빨리 달릴 것이라고 생각합니다.

언급URL : https://stackoverflow.com/questions/28785995/sql-query-get-row-from-table-a-when-its-column-value-is-not-in-table-b-and-calc