在同一查询中将选择与两个不同的组Bys组合

时间:2015-07-14 09:14:52

标签: mysql

我只有一个包含4列的表(1是主键 - 此处未使用)

Col1:年

Col2:Cust_ID

Col3:单位

我想将这两个查询组合起来生成一个输出,但是需要不同的组。

从表中选择Cust_ID,年份,总和(单位) group by cust_ID;

从表中选择cust_id,year,Units group by cust_id,year;

他们都独立工作。

当我尝试将它们与GROUP BY cust_id组合时,年份总和(单位) 只得到特定年份的总和(对于非总和查询是正确的),而我需要所有年份的总和 cust_id是相同的。

1 个答案:

答案 0 :(得分:0)

您需要定义要实现的目标。

如果你想要所有年份的cust_id和单位总和: SELECT cust_id,SUM(单位)FROM表GROUP BY cust_id

如果您想要客户的cust_id和年份加上所有年份的总和:

SELECT t1.cust_id,t1.year,SUM(t1.units)unitsForYear,(SELECT SUM(t2.units)FROM table t2 WHERE t1.cust_id = t2.cust_id)unitsForAllYears FROM表t1 GROUP BY cust_id,年