第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將一列的多個(gè)結(jié)果行合并為一個(gè),并按另一列分組

將一列的多個(gè)結(jié)果行合并為一個(gè),并按另一列分組

天涯盡頭無女友 2019-12-16 09:57:29
我有這樣的桌子Movie   Actor     A       1  A       2  A       3  B       4我想獲取電影的名稱以及該電影中的所有演員,并且我希望結(jié)果的格式如下:Movie   ActorList A       1, 2, 3我該怎么做?將一列的多個(gè)結(jié)果行合并為一個(gè),并按另一列分組
查看完整描述

3 回答

?
慕田峪9158850

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

使用聚合函數(shù)string_agg()(Postgres 9.0或更高版本)更簡(jiǎn)單:


SELECT movie, string_agg(actor, ', ') AS actor_list

FROM   tbl

GROUP  BY 1;

在這種情況下,1in GROUP BY 1是位置參考和快捷方式GROUP BY movie。


string_agg()期望數(shù)據(jù)類型text作為輸入。其他類型需要顯式轉(zhuǎn)換(actor::text) - 除非到隱式轉(zhuǎn)換text的定義-這是所有其他字符類型(的情況下varchar,character,"char"),和一些其他類型。


正如isapir所說,您可以O(shè)RDER BY在聚合調(diào)用中添加一個(gè)子句以獲取排序列表-如果需要的話。喜歡:


SELECT movie, string_agg(actor, ', ' ORDER BY actor) AS actor_list

FROM   tbl

GROUP  BY 1;


查看完整回答
反對(duì) 回復(fù) 2019-12-16
?
慕碼人2483693

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊

您可以使用array_agg函數(shù):


SELECT "Movie",

array_to_string(array_agg(distinct "Actor"),',') AS Actor

FROM Table1

GROUP BY "Movie";

結(jié)果:


| MOVIE | ACTOR |

-----------------

|? ? ?A | 1,2,3 |

|? ? ?B |? ? ?4 |

看到這個(gè)SQLFiddle



查看完整回答
反對(duì) 回復(fù) 2019-12-16
  • 3 回答
  • 0 關(guān)注
  • 826 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)