小编Yuv*_*man的帖子

从多列创建 JSON 对象数组

我这里有以下数据集

ID 钥匙 类别 平均时间_1 平均时间_2
1 1 10 10 20
2 1 20 30 40
3 2 10 10 50
4 2 20 60 70

Sqlfiddle。

我想创建一个查询,结果如下:

钥匙 平均时间_1 平均时间_1
1 [{“类别”:10,“平均时间”:10},{“类别”:20,“平均时间”:20}] [{“类别”:10,“avg_time”:20},{“类别”:20,“avg_time”:40}]
2 [{“类别”:10,“平均时间”:10},{“类别”:20,“平均时间”:60}] [{“类别”:10,“avg_time”:50},{“类别”:20,“avg_time”:70}]

这个想法只是以不同的方式重新表示值 colsavg_time_1和jsonb 值。avg_time_2

arrays postgresql aggregate-functions jsonb postgres-9.6

8
推荐指数
1
解决办法
8388
查看次数

我应该迁移到 Redshift 吗?

我目前正在努力查询存储在分区表中的数据块(按日期分区)

数据看起来像这样:

date, product_id, orders
2019-11-01, 1, 100
2019-11-01, 2, 200
2019-11-02, 1, 300
Run Code Online (Sandbox Code Playgroud)

我有数百个日期分区,每个日期有数百万行。

现在,例如,如果我想查询 2 周内产品 ID 1 和 2 的总订单,并按日期分组(以每个日期的图表显示),则数据库必须进行 2 周的分区,并且为他们获取数据。

当产品数量很大或所需的时间范围很长时,该过程可能会花费很长时间。

我读到 AWS Redshift 适合此类任务。我正在考虑将我的分区表(按日期聚合分析)转移到该技术,但我想知道这是否真的是我应该做的,以使这些查询运行得更快。

谢谢!

postgresql bigdata nosql amazon-redshift

6
推荐指数
1
解决办法
335
查看次数

如何在PostgreSQL 9.5中INSERT INTO SELECT和ON DUPLICATE UPDATE?

我正在尝试在PostgreSQL中执行以下操作

INSERT INTO blog_sums ( blog_id, date, total_comments)
    SELECT blog_id, '2016-09-22', count(comment_id) as total_comments_update
    FROM blog_comments
    WHERE date = '2016-09-22'
    GROUP BY blog_id         
ON CONFLICT (blog_id ,date)
DO UPDATE SET blog_sums.total_comments = total_comments_update;
Run Code Online (Sandbox Code Playgroud)

我在日期+ blog_id上有唯一的密钥,我一直收到错误:

错误:列"total_comments_update"不存在

在这种情况下,我正在寻找"正确"的方式和最有效的方法来更新重复/冲突

我的桌子是

blog_comments (blog_id, comment_id, comment, date)
blog_sums ( blog_id, date, total_comments) . unique on blog_id+date
Run Code Online (Sandbox Code Playgroud)

谢谢

postgresql postgresql-9.5

3
推荐指数
1
解决办法
8971
查看次数