簡體   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