2014-09-24 41 views
0

我有以下查询,给了我重新发布者的所有分组销售如何获得和之和与一个MySQL查询

SELECT 
    publisher_name, 
    SUM(sales) AS sales, 
    SUM(comission) AS comission, 
    SUM(sale_total) AS publisher_total_sale 
FROM reports_summary 
    GROUP BY publisher_name 
    ORDER BY publisher_total_sale DESC 

其输出

------------------------------------------------------------------------------- 
+ publisher_name + | + sales + | + commission + | publisher_total_sale_count + 
------------------------------------------------------------------------------- 
+ some publisher + | 254,12 + | + 12,23  + | 15       + 
------------------------------------------------------------------------------- 
+ publisher2  + | 123  + | + 23   + | 12       + 
------------------------------------------------------------------------------- 

我想要什么

另一列给我在这个例子中sum(publisher_total_sale_count) 27. +
是否有可能,会怎么样我这样做?

+0

这个查询有什么问题?你能指定表格结构,数据和所需的输出吗?你会惊讶于从没有上下文的断开的查询中看不到*的信息量。 – GolezTrol 2014-09-24 13:44:30

+0

一种方法是用WITH ROLLUP – Strawberry 2014-09-24 13:46:00

回答

0

就可以计算出在一个子查询,然后使用一个交叉连接,使其您的主查询:

SELECT 
    publisher_name, 
    SUM(sales) AS sales, 
    SUM(comission) AS comission, 
    SUM(sale_total) AS publisher_total_sale, 
    sumOfTotalSales 
FROM reports_summary, 
    (SELECT Sum(Sales_total) as sumOfTotalSales FROM reports_summary) as subTotalSales 
    GROUP BY publisher_name, sumOfTotalSales 
    ORDER BY publisher_total_sale DESC 

要在GUI而不是SQL编辑器做到这一点,你可以创建一个新的查询做这里的子查询是什么SELECT Sum(Sales_total) as sumOfTotalSales FROM reports_summary然后将它带入您的主查询并确保两个表之间没有连接。

+0

这是我想要感谢你。有没有更简短的查询? – fefe 2014-09-24 14:01:30

+0

我不这么认为。这要尽可能短,并且在SQL的整体世界中,这是一个非常简短的查询。 – JNevill 2014-09-24 14:04:56