pgsql中知道结束时间,开始时间,以及在这一时间段内完成的项目数量,求平均完成时间,单位是天,sql怎么写
时间: 2023-08-11 11:05:42 浏览: 49
假设有一个表格名为projects,包含以下字段:
- id:项目ID
- start_time:项目开始时间
- end_time:项目结束时间
- completed:项目完成数量
可以使用以下SQL语句计算平均完成时间:
```sql
SELECT
AVG(DATE_PART('day', end_time - start_time) / completed) AS avg_completion_time
FROM
projects
WHERE
end_time IS NOT NULL AND
start_time IS NOT NULL AND
completed > 0
```
解释:
- `AVG`:计算平均值
- `DATE_PART('day', end_time - start_time)`:计算结束时间和开始时间之间的天数差
- `/ completed`:除以完成数量,得到每个项目的平均完成时间
- `WHERE`子句:过滤掉没有结束时间、开始时间或完成数量为0的项目。
相关问题
pgsql中每季度的第一天时间查询
在 PostgreSQL 中,可以使用 `date_trunc()` 函数来获取每季度的第一天时间。以下是一个示例查询:
```sql
SELECT date_trunc('quarter', your_date_column) AS start_of_quarter
FROM your_table;
```
需要将上述查询中的 `your_date_column` 替换为你实际的日期列名,`your_table` 替换为你实际的表名。
这个查询将返回每个日期所属季度的第一天时间。注意,`date_trunc()` 函数的第一个参数是要截断的时间单位,使用 `'quarter'` 表示按季度截断。
pgsql时间加一天
在PostgreSQL中,可以使用以下语法将时间加一天:
1. 使用NOW()函数获取当前时间,并使用::TIMESTAMP将其转换为时间戳类型,然后使用+运算符加上INTERVAL '1 DAY':
SELECT NOW()::TIMESTAMP + INTERVAL '1 DAY';
2. 另一种方式是直接使用NOW()函数,并使用+运算符加上INTERVAL '1 DAY':
SELECT NOW() + INTERVAL '1 DAY';
3. 如果要对固定时间进行加一天操作,可以将固定时间转换为时间戳类型,然后使用+运算符加上INTERVAL '1 DAY':
SELECT '2022-11-11'::TIMESTAMP + INTERVAL '1 DAY';
以上是在PostgreSQL中将时间加一天的几种常见方法。你可以根据自己的需求选择适合的方法进行操作。
#### 引用[.reference_title]
- *1* [PostgreSQL时间加减](https://blog.csdn.net/weixin_42144379/article/details/127666553)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [PgSQL:日期函数与计算](https://blog.csdn.net/quan278905570/article/details/115129491)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]