정확히 명확하지 않다을 해야 할 것. 모든 값의 합이 음수 인 것처럼 원하면 SUM()을 수행하고 -1로 곱하면 음수 결과를 반환 할 수 있습니다.
예를 들어, 테이블의 첫 번째 행의 합계에서 다른 모든 값을 뺀 값을 얻고 싶습니다. 따라서 값이 10, 15, 5, 20이면 10 - 15 - 5 - 20입니다.이 값은 10 - (15 + 5 + 20)과 같습니다. LIMIT을 사용하여 표의 첫 번째 행을 가져올 수 있습니다. 우리는 위의 하나를 제외한 모든 다른 행의 합계를 얻을 수 있습니다
SELECT primary_key AS pk, field FROM table LIMIT 1;
:
SELECT SUM(field) FROM table WHERE primary_key != pk;
당신은 다음 두 번째 값을 뺄 수 있습니다 우리는 또한 다음 단계에 대한 기본 키가 필요합니다 처음부터. 당신은 아마 서로를 사용할 필요 해요 신뢰할 수있는 순서를 얻기 위해 선택했지만
SELECT SUM(CASE WHEN ROWNUM=1 THEN 2*A ELSE -A END)
FROM foo
:
SELECT SUM(b)
FROM (
SELECT CASE WHEN ROWNUM=1 THEN 2*a ELSE -a END AS b
FROM foo
ORDER BY ???
);
하지 않을 것이라고를 – FlySwat
2-1은 0이 아닌 1과 같습니다. – HAdes
귀하의 고안된 예에서 그렇습니다. 그러나 많은 양의 데이터를 그룹화 할 때 귀하의 노력을 볼 수 없습니다. – FlySwat