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
'source' 카테고리의 다른 글
SQL에서 업데이트를 위해 서브스트링을 사용하려면 어떻게 해야 합니까? (0) | 2023.09.07 |
---|---|
Python: pandas dataframe의 두 열(변수)을 기준으로 빈도수를 구하면 일부 행이 나타납니다. (0) | 2023.09.07 |
MariaDB 클러스터 - 하나의 노드가 다른 노드보다 느림 (0) | 2023.09.07 |
Microsoft를 참조합니다.SqlServer.스모들 (0) | 2023.09.07 |
특정 셀로 하이퍼링크하기 (0) | 2023.09.07 |