首页 > 解决方案 > Postgres如何分割一个100行的结果,每列有10个项目?

问题描述

我对 Postgres 完全陌生,我有一个查询,过去有人创建了一个获取机器温度的查询。现在,这通常会返回 100 行,所以我汇总了结果,结果又乱又长。我的示例表如下所示

id    temperature    Date
-------------------------
1          10        2020-01-01      
2          10        2020-01-01       
3          11        2020-01-01       
4          11        2020-01-01        
5          11        2020-01-01        
6          22        2020-01-01  
7          10        2020-01-01 
8          10        2020-01-01 
9          10        2020-01-01 
10         10        2020-01-01 
11         10        2020-01-01 
12         10        2020-01-01 
13         10        2020-01-01 
14         10        2020-01-01 
15         10        2020-01-01 
16         10        2020-01-01 
17         10        2020-01-01 
18         10        2020-01-01 
19         10        2020-01-01 
20         10        2020-01-01 

我目前的结果看起来像这些

Cooker Name|temperature                                                   |
Psalmonela |[10,10,11,11,11,22,10,10,10,10,10,10,10,10,10,10,10,10,10,10] |

因为这是一个 JSON 聚合函数,结果有时会达到 100 行,有没有办法可以 JSON 聚合它并显示每个聚合 10 个项目?

  (SELECT to_jsonb(ARRAY(
    SELECT
     temperature
    FROM stations
    WHERE
      station_id = 'c23d77d5-0dc5-40c4-asda-22123132'
      LIMIT 10 OFFSET 10
  ))) AS normal_temp1,

我最初的想法是返回 10 个结果,但是使用这个偏移量,有没有办法可以将所有这 10 个碎片结果合并到 1 个称为温度的列中?那么结果会是垂直的吗?

我当前的输出看起来像这样

在此处输入图像描述

作为一个新手,我用相同的代码添加了很多子查询,但限制和抵消了一切。那么我可以将这些列合并到一个称为温度的列中,这样看起来更好,但是,他们不喜欢现在有更多列的列

这是以前的报告的样子。 在此处输入图像描述

标签: postgresqlpostgresql-9.3

解决方案


推荐阅读