sql - 如何检索每周的第一行

标签 sql postgresql greatest-n-per-group

我有一张看起来像那样的 table

foo_date   | bar 
---------------
2018-01-01 | bar
2018-01-09 | bar
2018-01-10 | bar
2018-01-20 | bar

我想构建一个请求,每周检索本周最先出现的行。

干杯

最佳答案

你可以简单地做:

select distinct on (datetrunc('week', foo_date)) t.*
from t
order by datetrunc('week', foo_date), foo_date;

关于sql - 如何检索每周的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53157426/

相关文章:

MySQL - 按非 ASC 或 DESC 的顺序排序

php - 如何在 laravel 中获取每个用户 ID 的最新行?

hibernate - 创建函数 - UncategorizedScriptException - ArrayIndexOutOfBoundsException

mysql - 具有多个表连接的每个组的前 N ​​个

mysql - 如果 lat/lng 为空,则应将什么放入 lat/lng 数据库字段中?

mysql inner join关联所有元组

mysql - 关于 MySQL 和 PostgreSQL 中的子查询

sql - 如何计算 json 对象数组中的实例?

sql - 查询有条件地为每个不同的 id 只返回一行

sql - 如何按非唯一值对以下行进行分组