代码之家  ›  专栏  ›  技术社区  ›  Alen

有没有办法把最后一个列名转成最后一行?

  •  -1
  • Alen  · 技术社区  · 6 年前

    我有一个简单的查询来计算数据库中每个表中的所有行数。我想用最后一行作为最后一列的名称,total records,并显示所有记录的总和。

    select a.name
     ,b.rows, a.create_date
     ,a.modify_date
     ,sum(b.rows) over () as 
    total_records
    from sys.tables a
     inner join sys.partitions b on a.object_id = b.object_id
     where b.index_id = 1
     and b.rows > 1000
     group by a.name, b.rows, a.create_date, a.modify_date, b.rows
      order by b.rows desc
    

    我尝试了上述方法的一些变体,包括rollup和其他一些聚合函数,但无法使其看起来像我想要的那样。

    如果可能的话,我希望最后一行写Sum或Total,或者Name列中的某个内容,而row列将有Sum的值

    1 回复  |  直到 6 年前
        1
  •  1
  •   Tab Alleman    6 年前

    将所有查询与另一个选择所需聚合的查询合并,并按一个人工列排序,该列强制第二个查询成为最后一行。