我有一张表格(maintable
),格式为:
(id, intcol1, intcol2, intcol3, ...)
示例数据:
123, 582585, 25215718, 15519
234, 2583, 2371, 1841948
345, 42389, 234289, 234242
我想使用外部数据运行一些聚合计算来对数据进行分组。我的数据形式如下:
(id, groupcol)
示例数据:
123, "January",
234, "February"
345, "January"
在这种情况下,假设我希望intcol1
的SUM使用提供的分组匹配ID,结果将是:
"January", 624974 # 42389 + 582585
"February", 2583
我的问题是:我如何获得"组数据"进入查询?使用WITH
子句并将其加入maintable
?或者将其添加到临时表并在以下查询中使用它?
我可以操作我拥有的数据并对其进行格式化,但是运行SQL查询的程序最简单。
什么是最好/最快/最简单的方法?
为清晰起见而编辑
答案 0 :(得分:2)
这看起来像一个简单的连接和分组:
select t2.groupcol,
sum(t1.intcol1)
from maintable t1
join table_2 t2 on t1.id = t2.id
group by t2.groupcol;
如果你没有"外面"表格中的数据,您可以这样做:
select t2.groupcol,
sum(t1.intcol1)
from maintable t1
join (
values
(123, 'January'),
(234, 'February'),
(345, 'January')
) as t2 (id, groupcol) on t1.id = t2.id
group by t2.groupcol;