我的查询是
SELECT *
FROM acodes
WHERE datenumber >= '2016-12-09'
GROUP BY campaignid, acode
LIMIT 0 , 30
结果
有没有办法让SUM()maxworth
列?我想在sql查询中添加上面显示的所有maxworth
。答案不是SELECT *, SUM(maxworth)
,因为同一maxworth
和acode
有多个campaignid
。
答案 0 :(得分:1)
不确定你在这里问的是什么。
dx[i]=ab*(-(ina(frt,v[i],n[i],nae[i],nai[i])+inap(frt,v[i],hp[i],nae[i],nai[i])+ik(frt,v[i],n[i],ke[i],ki[i])+ipump[i]+il(v[i])+inmda(inanmda,iknmda,icanmda)+icapump)+iapp); //v
答案 1 :(得分:1)
将现有查询引用为内联视图。获取现有查询,并包装parens,然后使用它代替另一个查询中的表名。 (需要为内联视图分配别名。)
例如:
SELECT SUM(v.maxworth)
FROM (
-- existing query goes here, between the parens
SELECT *
FROM acodes
WHERE datenumber >= '2016-12-09'
GROUP BY campaignid, acode
LIMIT 0 , 30
) v
在MySQL中,该内联视图称为派生表。查询的工作方式...... MySQL首先在内联视图中运行查询,并将结果集具体化为派生表。填充派生表后,外部查询将针对该表运行。
答案 2 :(得分:0)
这通过唯一的campaignid,acode和maxworth计算SUM()。你提到“同一个acode和campaignid有多个maxworth”,这让我觉得你可能想要将“maxworth”视为独特的。
SELECT
campaignid,
acode,
maxworth,
SUM(maxworth) AS 'MAXWORTH1'
FROM acodes
WHERE datenumber >= '2016-12-09'
GROUP BY campaignid, acode, maxworth
答案 3 :(得分:0)
这是另一个回答你问题的尝试。
SELECT
a.campaignid,
a.acode,
SUM(a.maxworth) as "SUMMAXWORTH"
FROM
(SELECT
*
FROM acodes
WHERE datenumber >= '2016-12-09'
GROUP BY campaignid, acode
LIMIT 0 , 30
) a
GROUP BY a.campaignid, a.acodes