我有一个问题需要您的帮助。以下是我的问题:我有一张桌子
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
我如何通过这种方法分组?对不起,我的英语不好。
假设您要分组,直到第二个下划线。您会得到两个小组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 ;