【问题标题】:Merging (or union) two result set with MySQL使用 MySQL 合并(或联合)两个结果集
【发布时间】:2014-12-02 13:50:28
【问题描述】:

我有两个单独的 MySQL 查询,它们返回两组结果,如下所示

查询 1 个结果

country  | buyers | payment |  num_of_sales
UK       |   5    | 106.45  |    4
Thailand |   6    | 250.10  |    3

和:

查询 2 结果

country | buyers | payment |  num_of_sales
UK      |   2    | 150.00  |    1
Norway  |   9    | 310.80  |    2

我只需要合并/合并它们,最终结果将如下所示:

预期结果

 country | buyers | payment |  num_of_sales
 UK      |   7    | 256.45  |    5
Thailand |   6    | 250.10  |    3
 Norway  |   9    | 310.80  |    2

请提供帮助,如果可能,请提供一些解释。谢谢!

【问题讨论】:

  • 您能告诉我们最初的两个查询吗?
  • 谢谢,我设法扭转了局面,得到了与 Mahmoud Gamal 类似的预期结果。

标签: mysql merge sum union


【解决方案1】:

使用UNION ALL 将两个查询结果集合并为一个结果集,然后使用GROUP BY countrySUM 获取您要查找的总数,如下所示:

SELECT
  country, 
  SUM(buyers) AS buyers, 
  SUM(payment) AS payment, 
  SUM(num_of_sales) AS num_of_sales
FROM
(  
   SELECT country, buyers, payment, num_of_sales
   FROM -- your query1 results
   UNION ALL
   SELECT country, buyers, payment, num_of_sales
   FROM -- your  query2 result2  
) AS t
GROUP BY country

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    相关资源
    最近更新 更多