【发布时间】:2016-07-06 17:46:53
【问题描述】:
我有两个共享一列(day_code number)的表(table1 和 table2)。
我想从最小的 day_code 中获取每个表的记录数,并按 day_code 的结果分组。
表1(按day_code的记录数)
20160703 - 5
20160704 - 4
表2(按day_code的记录数)
20160703 - 5
20160704 - 4
我需要这样的东西:
----------------------------------------------------
DAY_CODE | TABLE 1 | TABLE 2 |
20160703 | 5 | 5 |
20160704 | 4 | 4 |
我正在使用该查询:
SELECT *
FROM
(
SELECT day_code, COUNT(day_code) AS TB1 FROM TABLE1 GROUP BY day_code
UNION ALL
SELECT day_code, COUNT(day_code) AS TB2 FROM TABLE2 GROUP BY day_code
) s
where day_code between 20160703 and 20160704
我得到了这个:
DAY_CODE | TB1
20160703 | 5
20160704 | 4
20160703 | 5
20160704 | 4
你能帮帮我吗?
提前感谢您的建议, 左路
【问题讨论】:
-
不完全清楚你的输出要求是什么。具有管道分隔值的单个单行字符串?包含列标题 DAY_CODE、TABLE 1 和 TABLE 2 以及每个 DAY_CODE 一行的行表?
-
对不起@mathguy。但我已经有了我想要的。 kordirko 的回答是正确的。 ;)
-
明白。 a_horse 的编辑有所帮助。我也给出了答案。请将 kordiko 的答案标记为“正确”(他发布了他的第一个);但在你这样做之后,你可能想尝试这两个答案,看看哪个在你的特定情况下效果更快。
标签: sql oracle count multiple-tables