【问题标题】:Combine "count" results of several queries into a single table将多个查询的“计数”结果合并到一个表中
【发布时间】:2022-01-20 16:54:05
【问题描述】:

目前正在使用此查询:

select "tablename1", count(*) as Count from table1
UNION ALL
select "tablename2", count(field2) as Count from table2

它给出了预期的结果:第 1 列中的表名和第 2 列中的相应计数。

不过,它有一个不受欢迎的副作用,就是将单词“tablename1”作为第 1 列的标题。(它对第 2 列的标题有“Count”,这正是我想要的)。

编辑:输出如下所示:

tablename1 Count
---------- -----
tablename1 1000
tablename2 2000  

有没有办法手动将第 1 列的标题设置为类似于“表名”而不是表名 1 的实际名称?

我在这里遗漏了一些非常明显的东西。谢谢。

【问题讨论】:

    标签: count union-all


    【解决方案1】:

    只需使用别名作为列名:

    select "tablename1" as TableName, count(*) as Count from table1
    UNION ALL
    select "tablename2" as TableName, count(field2) as Count from table2
    

    输出:

    TableName Count
    ---------- -----
    tablename1 1000
    tablename2 2000
    

    【讨论】:

    • 感谢您的回复,@Liero。我无法正确格式化“评论”,所以我在下面回复。
    • 更新答案再试一次。
    • 同样的错误。如果这很重要,我正在使用 Databricks SQL。这些都是单引号,对吧?
    • 更新:我删除了“表名”周围的单引号并将其更改为单个单词,表名。现在它起作用了。谢谢!
    • 是的,Databricks 的语法略有不同。我更新了我的答案。如果它解决了您的问题,请接受它,或编写您自己的答案。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 2013-07-25
    相关资源
    最近更新 更多