Sql 帮助在非常旧的DBMS中编写查询

Sql 帮助在非常旧的DBMS中编写查询,sql,db2,Sql,Db2,我有一个非常老的DB2数据库。它有一张像这样的桌子 NODE FILE SIZE X abc.txt 23 X abc.txt 23 X abc.txt 28 X

我有一个非常老的DB2数据库。它有一张像这样的桌子

NODE                  FILE                      SIZE
X                     abc.txt                   23
X                     abc.txt                   23
X                     abc.txt                   28
X                     xyz.txt                   450
Y                     abc.txt                   74
我需要编写一个查询,将输出显示为X,478和Y,74。我需要按每个节点和文件进行分组,以防有重复的文件,仅查找最大大小文件的总和。我无法使用选择*从选择。。。构造,因为DBMS不支持它。有什么想法吗?

你会做临时表格吗?如果没有,您可能会制作一个真正的表并使用下面的逻辑

CREATE TABLE #TEMP (Node CHAR(1), FILE Varchar(35), SIZE int)

SELECT NODE, FILE, MAX(SIZE)
FROM MyTable
GROUP BY NODE, FILE

SELECT NODE, SUM(SIZE)
FROM #Temp
GROUP BY NODE
基本上,第一步获取所有MAXSIZE值和不同的节点/文件组合,然后从该结果集中聚合最终结果

编辑


由于您不能创建临时表,只需创建一个普通表,即TempResults,并将其放在末尾。

我们讨论的是什么版本的DB2?如果它不支持select,如何检索数据?@Daniel-它看起来不支持sub-selects@Daniel-JNK是对的。它不支持子选择。。表中没有PK。。所以也不可能使用嵌套子查询。478从哪里来?不能使用临时表。这是禁止的:@Prabhu-那就做一张真正的桌子,把它放下。谢谢!但禁止以任何方式创建任何表或修改数据库。这是一个非常敏感的数据库。无法写入任何内容。在同一台服务器上是否有其他数据库可用于创建表?在我的工作中,我们有一个工作区数据库,我们用它来处理类似的事情。不。。没有工作区数据库。现有数据库是只读的。