'date'采用时间戳格式,在我的事件表中具有相同事件id的重复项
如果我正在执行子查询,获取最大值(日期(以删除重复项,我是否也可以将此最大值强制转换为日期而不是时间戳,并将其封装在最大值中?希望避免做不必要的子查询,谢谢。
当然,在对列应用聚合函数之前,您可以对其进行转换(通过强制转换或任何您喜欢的方法(。我不知道如何删除重复项。看看使用GROUP BY
的一些转换示例
with input (dt, v) AS (
SELECT '2020-12-20T12:00'::timestamp, 10 UNION ALL
SELECT '2020-12-20T13:00'::timestamp, 20 UNION ALL
SELECT '2020-12-20T14:00'::timestamp, 30
)
select
dt::date,
max(dt),
max(dt::date),
max(date_trunc('month', dt)),
max(last_day(dt)::timestamp),
avg(v),
count(*)
from input
group by 1
dt | |
---|---|
2020-12-20 | 3 |