Redshift。用一个共同的列来查询所有的表格

我正试图在Redshift中创建一个视图,以使我们能够看到每个表中的最新数据.我们的数据集更新了各种时间表,每个表都有一列 “已更新”,其中包含了行的最后更新日期。

我想实现的是在底部的视图(从这两个例子表)。

other.bigtable
+-----+--------+------------------+
| id  |  stat  |     updated      |
+-----+--------+------------------+
| A2  | rgerhg | 03/05/2020 05:00 |
| F5  | bdfb   | 03/05/2020 05:00 |
| GF5 | bb     | 03/05/2020 05:00 |
+-----+--------+------------------+
default.test
+----+------+------------------+
| id | name |     updated      |
+----+------+------------------+
|  1 | A    | 02/02/2008 00:00 |
|  2 | B    | 02/02/2008 00:00 |
|  3 | C    | 02/02/2008 00:00 |
|  4 | F    | 02/02/2008 00:00 |
|  5 | T    | 02/02/2010 00:00 |
+----+------+------------------+
default.view_updates
+---------+------------+------------------+
| schema  | table_name |    max_update    |
+---------+------------+------------------+
| default | test       | 02/02/2010 00:00 |
| other   | big_table  | 03/05/2020 05:00 |
+---------+------------+------------------+

到目前为止,我已经得到了表和模式,但不知道从哪里开始做日期。Redshift似乎更有局限性。

EDIT:

利用从网上偷来的一些代码,我希望用这个来创建额外列的表。

    select t.table_schema,
        t.table_name
    from information_schema.tables t
    inner join information_schema.columns c 
        on c.table_name = t.table_name 
        and c.table_schema = t.table_schema
    where c.column_name = 'updated'
        and t.table_schema not in ('information_schema', 'pg_catalog')
        and t.table_type = 'BASE TABLE'
    order by t.table_schema;

[资料来源: https: /dataedo: https:/dataedo.comkbqueryamazonredshiftfind-tables-with specific-column-name] 。

解决方案:

你可以从每个表中选择最近的日期,并联合在一起(如果你喜欢的话,可以放在一个视图中)。

Select * from (select top 1 ‘test’, updated from test order by updated desc)union allSelect * from (select top 1 ‘big_table’, updated from big_table order by updated desc)。

你可以有一个长长的 “union all “列表,直到某个限制。 这是将表硬编码到视图中–我想这就是你要找的。

给TA打赏
共{{data.count}}人
人已打赏
解决方案

去掉y标签后,子图错位了

2022-4-22 17:09:11

解决方案

Vue-Konva。有没有办法在飞行中重新排列图层?

2022-4-22 18:08:47

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索