sql server 2008 - 添加一个计算不同值的行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 2008 - 添加一个计算不同值的行相关的知识,希望对你有一定的参考价值。

使用SQL Server 2008,我得到以下输出:

Output

我想知道是否有一种方法可以用新的方式总结Col3的所有不同文本,以显示如下内容:

Desired ouptut

答案

以下是一种快速而肮脏的方法,就像jayvee建议的那样。它只有在查询的第一列是可以放入字符串的类型时才有效。如果不是,您可以将摘要输出移动到另一列。

DECLARE @TestData as TABLE (Col1 nvarchar(50), Col2 nvarchar(50), Col3 nvarchar(50));

Insert Into @TestData
Select 'Whatever1', 'Day1', 'Text1'
UNION ALL Select 'Whatever1', 'Day2', 'Text1'
UNION ALL Select 'Whatever1', 'Day3', 'Text2'
UNION ALL Select 'Whatever2', 'Day1', 'Text1'
UNION ALL Select 'Whatever2', 'Day2', 'Text3'
UNION ALL Select 'Whatever3', 'Day1', 'Text3'
UNION ALL Select 'Whatever3', 'Day2', 'Text2'
UNION ALL Select 'Whatever3', 'Day3', 'Text3';

With OriginalQuery as (
    --This should be your original query
    Select Col1, Col2, Col3 from @TestData
), GroupData as(
    -- This is the summary data you want
    Select Col3, COUNT(Col3) as ColCount from OriginalQuery Group By Col3
)
Select * from OriginalQuery  --Output the original data
UNION ALL
--This is formatting the group data, 
--and adding null columns so it matches the original query length, or the union will fail
Select 'Number of ' + Col3 + ' = ' + Cast(ColCount as nvarchar(10)),
    NULL, NULL  --One for each column in original query except the first one
From GroupData;

以上是关于sql server 2008 - 添加一个计算不同值的行的主要内容,如果未能解决你的问题,请参考以下文章

更改 SQL Server 2008 中在表的计算列中引用的标量函数

ETL工具Kettle连接到SQL Server Express 2008(以及SQL server添加用户)

SQL server 2008 权限

SQL Server 2008:将 VIEW 与其他 VIEW 联接:预先计算而不求助于临时表

如何将数据从Excel电子表格导出到Sql Server 2008表

SQL Server 2008 R2 计算字段问题