sql-server - 将 Sql 中的行数转换为列格式

标签 sql-server t-sql

我有下表:

VID RS
1   A
1   B
1   B
2   C
2   A

我想要做的是计算每个VID的每个RS的计数,并希望得到如下输出:

VID A   B   C
1   1   2   0
2   1   0   1

是否可以通过查询来完成,或者我需要创建临时表并对其执行插入/更新? 谢谢

最佳答案

如果您的RS数量是固定的,那么您可以这样做

select vid, 
       sum(case when RS = 'A' then 1 else 0 end) AS A,
       sum(case when RS = 'B' then 1 else 0 end) AS B,
       sum(case when RS = 'C' then 1 else 0 end) AS C
from your_table
group by vid

关于sql-server - 将 Sql 中的行数转换为列格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27958194/

相关文章:

mysql - SQL - 表之间的关系

sql-server - SQL Server : after using GROUP BY with CASE, ORDER BY 不起作用

sql-server - 如何在 Ubuntu 中安装 Visual Studio 2008 和 MS SQL Server 2008?

c# - GitHub 提交错误 : Permission denied fatal: Unable to process path ~/App_Data/aspnet-MyProject. mdf

c# - 无法通过上下文(Entity Framework Core)将 unicode(表情符号)写入 SQL Server 表

sql - TSQL,帮助进行有关用户年龄的小查询

sql - 在 View 中使用带有 SQL 函数的联接

c# - EF6 重试过程为 SqlQuery 命令抛出 "The SqlParameter is already contained by another SqlParameterCollection"

sql - 从多个字段中选择最大/最小值

sql-server - 如何在 .cfc 文件中的一个 DELETE 语句中从多个表中删除?