我想根据不同的表格
制作一份报告SELECT week, countA, countB
FROM (
(SELECT week, COUNT(*) AS countA FROM dataA a
GROUP BY 1 )
UNION
(SELECT week , COUNT(*) AS countB FROM dataB
WHERE blablabla ... GROUP BY 1) b
) c
现在我有一些问题
他不希望子查询b具有名称
他不知道countB是什么,如果我不给第二个查询一个名字
我感到困惑,不知道我是否应该把第二个查询的名称放在哪里
他们的解决方案是否是他们的某种“规则手册”,因为每次使用UNION功能时都会感到困惑
答案 0 :(得分:0)
SELECT test, counter
FROM (
(SELECT test, COUNT(*) AS counter FROM tableA
GROUP BY 1 )
UNION
(SELECT test , COUNT(*) AS counter FROM tableB
WHERE test <> 0 GROUP BY 1)
) c
您不需要命名查询,union将两个表一起合并到同一列。但它不会合并两个列不同的表。所以你需要计数器来命名相同。所以你有两列test和table来自tableA和tableB。
答案 1 :(得分:0)
您可以通过以下方式简化此查询:
SELECT test, COUNT(*) AS counter FROM tableA
GROUP BY 1
UNION
SELECT test , COUNT(*) AS counter FROM tableB
WHERE test <> 0 GROUP BY 1
列不必具有相同的名称。只要它们是“联合兼容”(简而言之,相同类型或类型可以相互促进)。结果表中列的名称与第一个选择查询中的列名称相同。