如何获取 postgresql 数据透视表中任何属性的最后一个值 table
how to get last value of any attribute in postgresql pivot table
我有一个table这样的
id u_id attr_key attr_value process_id insert_time
------|-------|----------|------------|--------------|--------------
1 1 name john 1 1
2 1 family smith 1 2
3 2 job clerk 2 3
4 1 name sarah 3 4
.............
我必须找到两件事:
- 我必须通过 tablefunc(crosstab) 创建一个视图来获取任何 u_id 的一组数据..所以很简单
- 我必须(实时)找到任何 u_id(如 Hbase 数据库)的任何键的最后一个值,所以我没有任何好的解决方案
这就是我需要的
id u_id attr_key attr_value
------|-------|----------|------------
4 1 name sarah
2 1 family smith
有什么想法或功能吗?
(可以在我的数据模型中添加一列)
greatest-n-per-group problems in Postgres is to use distinct on ()
最有效的解决方案:
以下将检索单个 u_id
select distinct on (attr_key) id, u_id, attr_key, attr_value
from the_table
where u_id = 1
order by attr_key, insert_time desc;
(u_id, attr_key, insert_time)
上的索引应该有助于提高性能
我有一个table这样的
id u_id attr_key attr_value process_id insert_time
------|-------|----------|------------|--------------|--------------
1 1 name john 1 1
2 1 family smith 1 2
3 2 job clerk 2 3
4 1 name sarah 3 4
.............
我必须找到两件事:
- 我必须通过 tablefunc(crosstab) 创建一个视图来获取任何 u_id 的一组数据..所以很简单
- 我必须(实时)找到任何 u_id(如 Hbase 数据库)的任何键的最后一个值,所以我没有任何好的解决方案
这就是我需要的
id u_id attr_key attr_value
------|-------|----------|------------
4 1 name sarah
2 1 family smith
有什么想法或功能吗? (可以在我的数据模型中添加一列)
greatest-n-per-group problems in Postgres is to use distinct on ()
最有效的解决方案:
以下将检索单个 u_id
select distinct on (attr_key) id, u_id, attr_key, attr_value
from the_table
where u_id = 1
order by attr_key, insert_time desc;
(u_id, attr_key, insert_time)
上的索引应该有助于提高性能