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收集的视图来创建。然后,他们可以使用以下内容链接此视图:或