我有一个有许多记录的表。它有以下结构:
表(col1、col2、col3、col4、col5、col6):
a b c val1 val2 val3
d e f val4 val5 val6
d e f val7 val8 val9
g h i val10 val11 val12
g h i val13 val14 val15
g h i val16 val17 val18
还有很多很多其他的行。
因此,我想要一张桌子:
表(col1,col2,col3,col4_1,col4_2,col4_3,col5_1,col5_2,col5_3,col6_1,col6_2,col6_3):
a b c val1 val2 val3 null null null null null null
d e f val4 val5 val6 val7 val8 val9 null null null
g h i val10 val11 val12 val13 val14 val15 val16 val17 val18
换句话说:表中的某些部分具有相同的col1、col2、col3
,但不同的col4、col5、col6
。每个相同col1、col2、col3
的行数在1-3之间变化(事先未知)。
我的想法是使用groupby
,但是如何处理col4、col5、col6
动态行数中可以满足的值呢?
那种桌子怎么做?
可以使用条件聚合和row_number()
:
select col1, col2, col3,
max(case when seqnum = 1 then col4 end) as col4_1,
max(case when seqnum = 1 then col5 end) as col5_1,
max(case when seqnum = 1 then col6 end) as col6_1,
max(case when seqnum = 2 then col4 end) as col4_2,
max(case when seqnum = 2 then col5 end) as col5_2,
max(case when seqnum = 2 then col6 end) as col6_2,
max(case when seqnum = 3 then col4 end) as col4_3,
max(case when seqnum = 3 then col5 end) as col5_3,
max(case when seqnum = 3 then col6 end) as col6_3
from (select t.*, row_number() over (partition by col1, col2, col3 order by col1) as seqnum
from t
) t
group by col1, col2, col3
我有一个表,在列中包含以下值: 表(col1, col2, col3, col4, col5, col6): 因此,我希望有一行: 怎么做?
问题内容: 我有这样一张桌子: 而且我想选择连续的合并行。假设我有(简化)的资料,例如: 我想知道是否可以选择格式如下的行: 编辑: 这是SQLfiddle 我正在使用9.3版的Postgresql! 谢谢! 问题答案: 这是解决此问题的一种方法。创建确定是否一个纪录做了标志 不 重叠的前一个。这是一个小组的开始。然后取该标志的累积总和并将其用于分组: 这是一个SQL Fiddle。
问题内容: 使用运算符将产生以下结果: 我希望能够实现以下结果(对于操作员来说只是一个占位符): 因此,您可以看到顶级键的子值已“合并”,使得结果包含和。 如何在Postgres中“深度”合并两个 JSONB 值? 如果可能的话,这可能吗? 一个更复杂的测试用例: 原始“合并”并成为对象的另一个测试用例: 问题答案: 您应该合并两个值都使用的未嵌套元素。在不平凡的查询中执行此操作可能会感到不舒服,
如何根据后端返回的数据来进行动态合并渲染,合并的关键字段为jianyanneirong和jianyanneirong1,合并要求如下图(如果jianyanneirong和jianyanneirong1值不同则进行行合并,但是jianyanneirong1值为空的情况需要进行行列合并)
问题内容: 我有一个这样的表来保存体检的结果以及发送报告的日期和结果。实际上,发送的日期是基于临床访问日期。客户可以拥有一个或多个报告(日期可能有所不同) 我想从上述数据中提取以下报告。 我正在研究Postgresql。“交叉表”功能在这里无法使用,因为每个客户端的“ date_sent”不一致。 任何人都可以粗略地提出一个应如何查询的想法吗? 问题答案: 我建议采用以下方法: 它的输出格式不完全
问题内容: 我需要将此查询复制到 JPA CriteriaBuilder 代码中: 这是我的代码: 现在,如何将其添加到析取谓词中?在不采取为PARAM。 谢谢 问题答案: 所以这就是我所做的,并且看起来工作正常: