【问题标题】:How to execute join query with another group by select statement如何通过select语句与另一个组执行连接查询
【发布时间】:2017-02-17 05:00:37
【问题描述】:

我首先为内部连接执行两个查询以从表中获取数据 第二组查询得到总和。

但是有没有办法在一个查询中执行两个查询?

第一个查询:

SELECT e.name,Value,address FROM table1 e  JOIN table2 p  ON p.name = e.name;
+--------+---------+------+----+
| name   |   Value | address   |
+--------+---------+------+----+
| name1  | 124     | address1  |
| name2  | 12      | address2  |
| name3  | 123     | address3  |
| name2  | 15      | address2  | 
+-------------+---------+------+

第二次查询:

SELECT name
     , SUM(Value) Total 
  FROM table1 
 GROUP BY name;
+-------------+-------+
| name        | Total |
+-------------+-------+
| name3       |   123 |
| name2       |    27 |
| name1       |   124 |
+-------------+-------+

我想要的是针对每个名称的总和列

+-------------+------------+
| name | sum   | address   | 
+-------------+------------+
| name1 |  124 |  address1 | 
| name2 |   12 |  address2 |
| name3 |  123 |  address3 |
+-------------+------------+

【问题讨论】:

  • 是SQLserver还是MYSQL

标签: mysql sql-server join


【解决方案1】:

尝试使用

SELECT donation_entry.Person_name,B.Total,Receipt,Date,month,Year,print_year,Valu e,address 
FROM donation_entry 
JOIN profile ON donation_entry.Person_name = profile.Person_name
JOIN (select Person_name,sum(Value) as Total from donation_entry group by Person_name)B on B.Person_name=donation_entry;

【讨论】:

    【解决方案2】:

    在您的第一个查询中将 SUM 聚合添加到 value 列并添加 非聚合在Group by

    SELECT table1.name,
               Sum(Value),
               address
        FROM   table1
               JOIN table2
                 ON table1.name = table2.name
        GROUP  BY table1.name,
                  address 
    

    考虑到nametable2 表中是唯一的

    【讨论】:

      猜你喜欢
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 2021-01-05
      • 2022-11-17
      相关资源
      最近更新 更多