Mysql 如何在sql查询中获取组的总和
我的问题是Mysql 如何在sql查询中获取组的总和,mysql,sql,group-by,sum,Mysql,Sql,Group By,Sum,我的问题是 SELECT * FROM acodes WHERE datenumber >= '2016-12-09' GROUP BY campaignid, acode LIMIT 0 , 30 结果是 是否有方法对maxworth列求和?我想将上面显示的所有maxworth添加到sql查询中。答案不是SELECT*,SUM(maxworth),因为同一acode和activitid有多个maxworth,不确定您在这里问什么 SELECT a.MAXWORTH1,
SELECT *
FROM acodes
WHERE datenumber >= '2016-12-09'
GROUP BY campaignid, acode
LIMIT 0 , 30
结果是
是否有方法对
maxworth
列求和?我想将上面显示的所有maxworth
添加到sql查询中。答案不是SELECT*,SUM(maxworth)
,因为同一acode
和activitid
有多个maxworth
,不确定您在这里问什么
SELECT
a.MAXWORTH1,
SUM(a.MAXWORTH) AS "MAXWORTH2"
FROM (
SELECT
CAMPAIGNID,
SUM(maxworth) AS "MAXWORTH1"
FROM acodes
WHERE datenumber ='2016-12-05'
GROUP BY campaignid
) a
GROUP BY a.MAXWORTH1
不知道你在问什么
SELECT
a.MAXWORTH1,
SUM(a.MAXWORTH) AS "MAXWORTH2"
FROM (
SELECT
CAMPAIGNID,
SUM(maxworth) AS "MAXWORTH1"
FROM acodes
WHERE datenumber ='2016-12-05'
GROUP BY campaignid
) a
GROUP BY a.MAXWORTH1
这将通过唯一的活动ID、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
这将通过唯一的活动ID、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
下面是回答你问题的另一个尝试
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
下面是回答你问题的另一个尝试
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
将现有查询作为内联视图引用。获取现有查询,并将其换行为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首先在内联视图中运行查询,并将结果集具体化为派生表。填充派生表后,外部查询将针对该表运行。将现有查询作为内联视图引用。获取现有查询,并将其换行为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首先在内联视图中运行查询,并将结果集具体化为派生表。一旦填充了派生表,外部查询就会运行。很难理解您的要求,但我认为您应该签出汇总集或分组集keywords@desbest你能解释一下“另一列的数字求和”吗@Lioness这意味着在执行上图所示的sum sql查询之后,我想要上图所示的
maxworth
列的总和。我更新了我的问题@erikkallenI更新了我的问题@Lioness很难理解你在问什么,但我认为你应该检查汇总或分组集keywords@desbest你能解释一下“另一列的数字求和”吗@Lioness这意味着在执行上图所示的sum sql查询之后,我需要上图所示的maxworth
列的总和。我已经更新了我的问题@erikkallenI已经更新了我的问题@Lioness什么不起作用?请提供更多信息。谢谢。“字段列表”中的未知列“a.MAXWORTH”可能会尝试使用引号中的别名。什么不起作用?请提供更多信息。谢谢。“字段列表”中的未知列“a.MAXWORTH”可能会尝试使用引号中的别名。抱歉,您不理解我的问题。每行有一个amountpaid
和maxworth
,并按activitid
和acode
分组。有多行具有相同的activitid
和acode
,它们具有相同的maxworth
您正在做的是,将activitid
和acode
匹配的每一行相加,因此将相同的maxworth
相加多次。这就是我现在想要做的。我想做一个查询,将行按activitid
和acode
进行分组,就像我原来的查询一样,只需将结果maxworth
列中的所有行相加。画一幅你想让它看起来像什么的图画。有什么不明白的?我想修改这个sql查询,将maxworth
列中的所有内容相加(求和)<代码>从日期编号>='2016-12-09'按活动ID分组的代码中选择*,代码限制0,30答案不是从日期编号>='2016-12-09'按活动ID分组的代码中选择*,总和(maxworth),代码限制0,30
抱歉,您不理解我的问题。每行有一个amountpaid
和maxworth
,并按activitid
和acode
分组。有多行具有相同的activitid
和acode
,它们具有相同的maxworth
您正在做的是,将activitid
和acode
匹配的每一行相加,因此将相同的maxworth
相加多次。这就是我现在想要做的。我想做一个查询,将行按activitid
和acode
进行分组,就像我原来的查询一样,只需将结果maxworth
列中的所有行相加。画一幅你想让它看起来像什么的图画。有什么不明白的?我想修改这个sql查询,将maxworth
列中的所有内容相加(求和)<代码>从日期编号>='2016-12-09'按活动ID分组的代码中选择*,代码限制0,30答案不是从日期编号>='2016-12-09'按活动ID分组的代码中选择*,总和(maxworth),这意味着列名不正确。列名中没有“s”,因此将其更改为“a.acode”将解决此错误。函数a.SUM不存在。检查参考手册OOPS中的“函数名解析和解析”部分,它实际求和(a.maxworth)。这意味着列名不正确。列名中没有“s”,因此将其更改为“a.acode”将解决此错误。函数a.SUM不存在。检查参考手册OOPS中的“函数名解析和解析”部分,它实际求和(a.maxworth)