我正在使用以下声明并获得我需要的几乎所有内容.另外,我想获得所有row_total结果的SUM.
SELECT c.id AS campaign_id, c.amount AS campaign_amount, c.warning_trigger,
COUNT(cc.id) as code_count, DATEDIFF(c.end_date, CURDATE()) as days_remain,
SUM(c.amount) as row_total
FROM campaigns c
JOIN campaign_codes cc
LEFT JOIN partners p on p.id = 4
WHERE c.partner_id = 4 AND cc.status = 0 AND c.id = cc.campaign_id
GROUP BY c.id
ORDER BY campaign_amount ASC
Run Code Online (Sandbox Code Playgroud)
这是一个示例结果,最后一列是我想要一起添加的列:
1 10.00 30 992 24 9920.00
3 25.00 30 995 290 24875.00
16 50.00 30 988 335 49400.00
17 100.00 30 1000 335 100000.00
Run Code Online (Sandbox Code Playgroud)
Qua*_*noi 11
获得运行总和:
SELECT c.id AS campaign_id, c.amount AS campaign_amount, c.warning_trigger,
COUNT(cc.id) as code_count, DATEDIFF(c.end_date, CURDATE()) as days_remain,
SUM(c.amount) as row_total, @r := @r + SUM(c.amount) AS running_sum
FROM (
SELECT @r := 0
) vars,
campaign c, …
Run Code Online (Sandbox Code Playgroud)
要将总计(和所有其他聚合)作为附加记录:
SELECT *
FROM (
SELECT c.id AS campaign_id, c.amount AS campaign_amount, c.warning_trigger,
COUNT(cc.id) as code_count, DATEDIFF(c.end_date, CURDATE()) as days_remain,
SUM(c.amount) as row_total
FROM campaign c, …
GROUP BY
c.id WITH ROLLUP
) q
ORDER BY
campaign_amount ASC
Run Code Online (Sandbox Code Playgroud)
要在其他字段中获得总和:
SELECT c.id AS campaign_id, c.amount AS campaign_amount, c.warning_trigger,
COUNT(cc.id) as code_count, DATEDIFF(c.end_date, CURDATE()) as days_remain,
SUM(c.amount) as row_total,
(
SELECT SUM(c.amount)
FROM campaign c, …
-- the same but without the GROUP BY and ORDER BY clauses.
)
FROM campaign c, …
GROUP BY
c.id
ORDER BY
campaign_amount ASC
Run Code Online (Sandbox Code Playgroud)