Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sqlalchemy如何从不同的表中划分2列_Python_Sql_Sqlalchemy - Fatal编程技术网

Python sqlalchemy如何从不同的表中划分2列

Python sqlalchemy如何从不同的表中划分2列,python,sql,sqlalchemy,Python,Sql,Sqlalchemy,我有两个名为公司信息和公司收入的表: 公司信息: | id | company_name | staff_num | year | |----|--------------|-----------|------| | 0 | A | 10 | 2010 | | 1 | A | 10 | 2011 | | 2 | A | 20 | 2012 | | 3 | B

我有两个名为
公司信息
公司收入
的表:

公司信息:

| id | company_name | staff_num | year |
|----|--------------|-----------|------|
| 0  | A            | 10        | 2010 |
| 1  | A            | 10        | 2011 |
| 2  | A            | 20        | 2012 |
| 3  | B            | 20        | 2010 |
| 4  | B            | 5         | 2011 |
公司收入:

| id | company_name | income | year |
|----|--------------|--------|------|
| 0  | A            | 10     | 2010 |
| 1  | A            | 20     | 2011 |
| 2  | A            | 30     | 2012 |
| 3  | B            | 20     | 2010 |
| 4  | B            | 15     | 2011 |
现在我想计算每个公司的平均员工收入,结果如下:

结果:

| id | company_name | avg_income | year |
|----|--------------|------------|------|
| 0  | A            | 1          | 2010 |
| 1  | A            | 2          | 2011 |
| 2  | A            | 1.5        | 2012 |
| 3  | B            | 1          | 2010 |
| 4  | B            | 3          | 2011 |

如何使用python SQLalchemy获得这个结果?表的数据库是MySQL。

连接表并进行标准求和。您可以使用此查询在MySQL中设置视图,也可以直接在程序中创建视图

SELECT
  a.CompanyName,
  a.year,
  (a.staff_num / b.income) as avg_income

 FROM
  company_info as a

 LEFT JOIN
   company_income as b
 ON
   a.company_name = b.company_name
 AND
   a.year = b.year
您还需要一些where(例如staff_num不为null或不等于0且与收入相同。此外,如果两列中的同一公司/年有多个值,则您需要对该列中的值求和,然后按公司名称和年份分组)

尝试以下操作:

SELECT 
    info.company_name,
    (inc.income / info.staff_num) as avg,
    info.year
FROM
    company_info info JOIN company_income inc
ON
    info.company_name = inc.company_name
AND
    info.year = inc.year

pythonsqlalchemy..?Python。。sqlalchemy..@thebjorn用户表示:表的数据库是MySQL。这可以通过sqlalchemy收集的视图来创建。然后,他们可以使用以下内容链接此视图:或