如何按格式的字符串字段分组?

缝制

我有一个问题需要您的帮助。以下是我的问题:我有一张桌子

id     | total 
1_2    |  12
1_2_3  |  13
1_2    |  14
1_2_5  |  14
1_1_1  |  14

按ID进行普通分组

SELECT id , sum(total)                        id    | total 
FROM mybucket                    ->           1_2   | 26
GROUP BY id                                   1_2_3 | 13
                                              1_2_5 | 14
                                              1_1_1 | 14

但是我想按ID格式字段ID分组。示例我将1_2_3拆分为1_2,将1_2_4拆分为1_2,并最终结果

    id    | total 
    1_2   | 26 +13+14 = 43 
    1_1_1 | 14

如何用这种方法分组?

vsr

假设您要分组直到第二个下划线。您会得到两个小组1_2、1_1(不是1_1_1)

SELECT nid AS id, SUM(total) AS total
FROM mybucket
LET nid = CASE WHEN ARRAY_LENGTH(SPLIT(id, "_")) > 2 THEN CONCAT(SPLIT(id, "_")[0],"_",SPLIT(id, "_")[1]) ELSE id END;
GROUP BY nid ;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章