[英]Distinct and List of other column in postgresql
我正在使用 postgres DB,我有两个列name
和sal
的表。
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.