繁体   English   中英

postgresql中其他列的不同和列表

[英]Distinct and List of other column in postgresql

我正在使用 postgres DB,我有两个列namesal的表。

   name       Sal
  Raunak     10000
  Raunak     5000
  Rahul      500
  Raunak     300

而且我要

Raunak 10000,5000,300
Rahul  500

我正在使用 JPA 有什么方法可以获取 JPA 数据

您可以使用 string_agg 函数来构建一个逗号分隔的值列表:

select name, string_agg(sal::text, ',')
from t
group by name

如果您的应用程序可以使用 json 数据,您可能需要考虑json_agg而不是 csv。

如果要保留sal列的数据类型,可以使用返回值数组的array_agg() 不确定JPA是否会让您正确访问它

select name, array_agg(sal) as sals
from the_table
group by name;

如果我正确理解您的问题,您希望通过以下 SQL 语句获得结果:

SELECT
  name,
  string_agg (sal::varchar(22), ', ') as sals
FROM
  test
GROUP BY
  name;

由于是postgresql相关的SQL,我们不能或者很难通过普通对象查询来表达。 您可以在 JPA 代码中通过本机查询模式构造上述 SQL。

@Query(value = "<the above query>", nativeQuery = true)
List<Object[]> query();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM