假设我想重写以下聚合查询
select id, max(hittime)
from status
group by id
Run Code Online (Sandbox Code Playgroud)
使用聚合窗口函数,如
select id, max(hittime) over(partition by id order by hittime desc) from status
Run Code Online (Sandbox Code Playgroud)
如何指定我只对分区中的第一个结果感兴趣?
编辑:我在想 [ RANGE | ] 可能有一个解决方案 ROWS ] 在 frame_start 和 frame_end 之间。不仅要获得 max(hittime) 还要获得第二、第三...
我有像这样的数据
http://www.linz.at/politik_verwaltung/32386.asp
Run Code Online (Sandbox Code Playgroud)
存储在文本列中.我以为是非贪婪的提取物
select substring(turl from '\..*?$') as ext from tdata
Run Code Online (Sandbox Code Playgroud)
会给我.asp,但它仍然会?greedely导致
.linz.at/politik_verwaltung/32386.asp
Run Code Online (Sandbox Code Playgroud)
我怎样才能匹配点的最后一次出现.?
使用Postgresql 9.3
有人可以指点我体面的教程解释影响缓存的各种http-header设置(代理,浏览器,它们在一起以及浏览器和缓存引擎中的可能怪癖)
我认为这是一个有点被忽视的特征 - 至少我没有利用它.缓存CSS,JS和图片(几乎所有来自无cookie域的内容)都应该加快一些速度.
要描述我的查询问题,以下数据很有用:

单个表包含列ID(int),VAL(varchar)和ORD(int)
VAL的值可能会随着时间的推移而发生变化,ID标识的旧项目不会更新,而是附加.ID的最后一个有效项由最高ORD值(随时间增加)标识.
T0,T1和T2是输入数据的时间点.
解决方案不得涉及物化视图等,但应在单个SQL查询中表达.使用Postgresql 9.3.