我试图在DB2中查询以下内容。 T28,T29和T30是表名。它们将文件名作为列在所有表中。我必须按文件名查找所有三个表组中的文件名计数。你能帮忙吗?
好吧,我在DB2中尝试这个。
我正在寻找这样的输出。
filename T28COUNT T29COUNT T30COUNT
答案 0 :(得分:0)
尝试
SELECT filename,
SUM(CASE WHEN t = 28 THEN 1 ELSE 0 END) t28count,
SUM(CASE WHEN t = 29 THEN 1 ELSE 0 END) t29count,
SUM(CASE WHEN t = 30 THEN 1 ELSE 0 END) t30count
FROM
(
SELECT 28 AS t, filename
FROM t28
UNION ALL
SELECT 29 AS t, filename
FROM t29
UNION ALL
SELECT 30 AS t, filename
FROM t30
) q
GROUP BY filename
ORDER BY filename
这是SQL Server的 SQLFiddle 演示,但我相信它对DB2来说应该是完全相同的。