簡體   English   中英

如何對行求和,然后減去分組依據?

[英]How to sum rows and then subtract them grouped by?

CREATE TABLE test
    (`id` int, `type` int, `summ` int)
;

INSERT INTO test
    (`id`, `type`, `summ`)
VALUES
    (1, 1, 100),
    (2, 1, 200),
    (3, 2, 250),
    (4, 2, 20),
    (5, 3, 10)
;

sql:

SELECT
  type, SUM(summ) as total
FROM
  test
GROUP BY
  type

結果是3行,按type和總計值的total分組:1-300、2-270、3-10。

問:如何將類型1最終total結果減去所有其他結果( 23 )? 結果將是:300-270-10 =20。因此,我需要得到20

http://sqlfiddle.com/#!9/c4df28/1

您可以使用SUMCASE

SELECT SUM(CASE WHEN type = 1 THEN summ ELSE -summ END) as total
FROM test

SqlFiddleDemo

type = 1記錄將保持不變,其余的將被否定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM