我有一个格式的表(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"
在这种情况下,假设我想要使用提供的分组来匹配 ID 的 intcol1
的 SUM,结果将是:
"January", 624974 # 42389 + 582585
"February", 2583
我的问题是:如何将“组数据”获取到查询中?使用 WITH
子句并将其加入 maintable
?或者将其添加到临时表并在后续查询中使用它?
我可以操作我拥有的数据并对其进行格式化,但是从运行 SQL 查询的程序中最简单的方法。
最好/最快/最简单的方法是什么?
为清晰起见进行了编辑
最佳答案
这看起来像是一个简单的连接和分组依据:
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;
关于postgresql - 在 SQL 查询中使用临时数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45030163/