postgresql - 在查询中使用平均值 (PostgreSQL)

标签 postgresql average

我在提出查询以从以下模式中查找每个公交公司使用的公交车的平均年龄时遇到了麻烦:

巴士公司

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/

相关文章:

postgresql - 中央操作系统 6 : Not Allowing Connection to Port 5432

sql - 从 PostgreSQL 中的两列中选择第一个非空单元格

mysql - 在 WHERE 子句中使用 AVG 从连接的 MySQL 表中检索数据?

sql - 在 MySQL 查询中获取水平平均值的最有效方法是什么?

java - 我有矩阵,我需要总结指定行和列周围的所有值,包括提供的位置。然后输出平均值

postgresql - postgresql 10 如何将过滤后的总和结果分配给不同的变量?

列表列的 SQL WHERE 子句

postgresql - 日期范围内的天数

r - 在 R 中使用移动平均线

sql - Symfony/Doctrine : SUM and AVG score of players