在一个查询中,所有的SUM,但COUNT的唯一

时间:2016-09-01 22:42:14

标签: mysql count group-by

我有两个问题

   SELECT SUM(amount) as amount FROM sales
   SELECT COUNT(id) as total FROM sales GROUP BY rep_id

如何将这两个查询合并为一个? 如果我在第一个分组时,它只按金额分组。

3 个答案:

答案 0 :(得分:0)

试试这个:

SELECT SUM(金额)金额,(SELECT COUNT(id)as FROM FROM sales GROUP BY rep_id)FROM sales

答案 1 :(得分:0)

 Select (Select Sum(Amount) from sales) Amount,
     count(*) total  
 from sales 
 group by repID

但是要理解,这将为每个RepID生成一行,包括所有repId的总销售额,以及每行上只有该repId的销售额。

T \以这种方式呈现数据,其中每行上的一列数据仅包含该行的数据,而另一列包含对所有行进行求和的值,这可能非常混乱和误导。

答案 2 :(得分:0)

您只需使用UNION关键字即可。根据MySql文档,

  
    

UNION用于将多个SELECT语句的结果合并为一个结果集

  

实际上,根据您的两个SQL查询:

SELECT SUM(amount) as total FROM sales
UNION
SELECT COUNT(id) as total FROM sales 
GROUP BY rep_id

请注意,上面的查询会生成一个具有相同别名的单个列。但这不是一个问题,因为你已经知道哪一行符合哪个查询。