我在提出查询以从以下模式中查找每个公交公司使用的公交车的平均年龄时遇到了麻烦:
巴士公司
company_id | name
1 NED
2 JIM
总线类型
type_id | date_made
1 2006-01-26
2 1999-05-05
3 2000-09-01
路线
route_id | bustype | bus_company
1 2 1
2 1 1
3 1 1
4 3 2
5 3 2
6 1 2
7 2 2
在此示例中,假设今天是 2013 年 3 月 18 日,NED 的平均公交车使用年限为 4246.666 = 4247 天。
整个查询会是什么样子?
最佳答案
我现在不能测试,但是像这样:
-- assuming "date_made" is a pg DATE column
--
SELECT buscompany.name, ROUND(AVG(CURRENT_DATE - date_made))
FROM buscompany
LEFT JOIN route
ON route.bus_company = buscompany.company_id
LEFT JOIN bustype
ON route.bustype = bustype.type_id
GROUP BY 1
应该做你想做的 (tm)。 pg 中的日期减法给出天数差异。
关于postgresql - 在查询中使用平均值 (PostgreSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15486078/