[英]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.