我有一个应用程序表(master),其数据结构如下:
Id | NameColumn | BitFlag
1 'Appl1' 1
2 'Appl2' 2
3 'Appl3' 4
4 'Appl4' 8
这样的子表:(' - '表示'评论')
TextColumn | IdColumn
'SameText' 1 --(app1)
'SameText' 2 --(app2)
'OtherText' 3 --(app3)
我想通过在子表的int-bitwise列中使用BitFlag列缩小此表,如下所示:
TextColumn | BitFlag
'SameText' 3 -- (1[app1] + 2[app2])
'OtherText' 4 -- ([app3])
我目前正在使ConsoleApp从当前结构转换为新结构,我这样做是因为,今天,我们的'子表'有超过300k行,90%只是重复文本一个不同的ApplicationId。
如果有人可以提供一些有关如何使用SQL-Only实现此目的的见解 代码或对此有任何想法,我很乐意听到。
提前致谢。
答案 0 :(得分:1)
您可以使用GROUP BY
和SUM
:
SELECT c.TextColumn, SUM(m.BitFlag) AS BitFlag
FROM t_child c
LEFT JOIN t_master m
ON c.IDColumn = m.ID
GROUP BY c.TextColumn;
<强> RextesterDemo 强>
答案 1 :(得分:1)
我假设括号文本仅供参考,而非实际值,因此我们可以使用简单的聚合。
~array()