回答

收藏

Vertica SQL中的Concat GROUP BY

技术问答 技术问答 66 人阅读 | 0 人回复 | 2023-09-13

我需要用逗号分隔的ID列表作为杂乱的第三方api的字段:s这是我要实现的功能的简化版本。
5 |, x& D: j( y4 x! {+ [4 b| id | name |+ Y; C( k- o5 y& F  ?
|====|======|
4 ?. `+ Y8 w; _! v9 F& X| 01 | greg |' G& V9 M; W7 b; q
| 02 | paul |& s3 r! t) s7 g8 q2 D& ^) S
| 03 | greg |
  b7 w( N6 T2 A3 _5 Z| 04 | greg |
+ _. I( V$ K  s: A1 }: Q+ \* n) ^| 05 | paul |
! k( G: R% G5 p. n% w, ySELECT name, {some concentration function} AS ids
' @2 R9 M8 l, {2 R0 t3 U( ?FROM table
! x- ?2 Q, V/ [" m9 L$ aGROUP BY name& [7 n+ {: T8 N& J% H$ v9 O1 v
归来
7 D2 u$ d" B  W' w) |) D7 w& j# Y- z/ }| name | ids        |' `: L+ ?9 c0 N2 u0 e) h8 T
|======|============|5 r- h3 _* l$ y3 U) d
| greg | 01, 03, 04 |
7 v* ^, g7 h% d2 f( F  m| paul | 02, 05     |5 Q- N7 S+ j* u6 N( P$ m. x
我知道MySQL具有CONCAT_GROUP函数,并且由于环境原因,我希望解决此问题而不安装更多函数。也许我可以使用OVER语句解决此问题?! Y3 m( S" |) O' N: B, t
                0 X4 d4 j- ]1 z% |8 r
解决方案:* ?' U# l$ v" I* H8 I/ {8 h- z) ^
                # H0 g1 `  w, F' C( q
6 F9 b' ^+ u6 j) y: e- @: K( [4 i

+ }  A) J" t0 k+ Q, m5 V                从长远来看,最简单的方法是使用可在github上找到的官方Vertica
# c8 T8 ~, ]1 Z: K. {- e. iUDF之一,网址为https://github.com/vertica/Vertica-6 R  W7 y" J( h5 k
Extension-
8 h: j$ D, `& ?5 h( ~% |Packages/tree/master/strings_package,它提供了group_concat函数。安装过程可在自述文件中找到,甚至提供示例。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则