【发布时间】:2015-08-09 23:32:20
【问题描述】:
我想要完成的是通过内部 SQL 中的所有表获取 sendercompid、targetcompid、msgtype 的所有唯一组合的聚合数据。
我希望在结果输出中有 2000 万到 4000 万个不同的行。
我无法在 Postgresql 8.3.13 上成功运行下一个查询:
SELECT
sendercompid, targetcompid, count(msgtype), msgtype
FROM
(SELECT table_name
FROM information_schema.tables
WHERE table_catalog = 'test'
AND table_schema = 'msg'
AND (table_name like 'fix_aee_20121214%') OR
(table_name like 'fix_aee2_20121214%')
)
WHERE
(sendercompid LIKE '%201%') OR
(targetcompid LIKE '%201%')
GROUP BY
sendercompid, targetcompid, msgtype ;
如果此选择在 2 上拆分:外部和内部,则: inner 将提供表列表,而 outer 将从每个表中进行选择和分组。
如果我将这两个 SQL 作为一个运行,我会收到来自 pgsql db 的别名错误
错误:FROM 中的子查询必须有别名
我尝试使用别名,但这个错误并没有消失。
有什么想法我在那里想念的吗?
谢谢。
【问题讨论】:
-
不能动态定义“from”部分,查询中涉及的所有表名必须在语句执行前知道。
标签: postgresql