sql server,表中许多列上的聚合(计数)

用户名

我有一张桌子,下面已经简化了。它实际上可以扩展到Type60

   编号| 类型1 | Type2 | Type3 | 类型4 
   ------------------------------------------------- ----- 
   1 | 1 | 1 | 1 | 0 
   2 | 1 | 1 | 1 | 0 
   3 | 1 | 1 | 1 | 0    
   4 | 0 | 2 | 0 | 1    
   5 | 0 | 2 | 1 | 0    
   6 | 0 | 2 | 0 | 1 
   7 | 1 | 1 | 1 | 0 
   8 | 1 | 1 | 0 | 1 
   9 | 1 | 2 | 1 | 0 
   10 | 0 | 2 | 0 | 1个

我想要的输出如下所示(扩展到Name60)

   姓名| 价值| CountOfValue 
   ----------------------------------- Name1 
   | 0 | 4
   名称1 | 1 | 6名称2     
   | 1 | 5名称2 
   | 2 | 5名称3 
   | 0 | 6名称3 
   | 1 | 4
   名称4 | 0 | 4
   名称4 | 1 | 6

为了到达那里,我一直在做:

选择“名称1”作为名称,类型1,计数(数字)
从表1
组由类型1

工会

选择“名称2”作为名称,类型2,计数(数字)
从表1
由类型2组

联合

选择“NAME3”作为名称,类型3,COUNT(数)
从表1
通过的Type3组

联合

选择“NAME4”作为名称,类型4,计数(数字)
从表1
组由Type4的

直至Name60等

这需要一段时间才能运行,

有没有人更有效(更快)的方法来做同样的事情?

谢谢,加里

亚历克斯

您可以尝试UNPIVOT。

SELECT Name, [values] AS Value, Count(*) AS CountOfValue
FROM
(
    SELECT REPLACE([Type], 'Type', 'Name') AS Name, [values]
    FROM #testPivot
    UNPIVOT ([values] FOR [type] IN 
            (Type1, Type2, Type3, Type4) -- ETC to Type60
    ) AS unpvt
) AS test
GROUP BY Name, [values]
ORDER BY Name, Value

您仍然必须在UNPIVOT中放入所有Type1到Type 60。PIVOT和UNPIVOT

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server中多个列上的聚合函数

来自分类Dev

SQL Server中多个列上的聚合函数

来自分类Dev

从SQL Server的多个表中删除许多记录的最佳实践

来自分类Dev

从SQL Server的多个表中删除许多记录的最佳实践

来自分类Dev

SQL Server 2012中的动态数据透视表中的聚合

来自分类Dev

多个列上的SQL Server数据透视表

来自分类Dev

在SQL子查询中聚合计数

来自分类Dev

SQL Server Pivot用于计数联接表中的实例

来自分类Dev

从表SQL Server中的每个列获取每个值的计数

来自分类Dev

以最优化的方式从sql server表中获取记录计数

来自分类Dev

如何获取SQL Server中的联接表的计数?

来自分类Dev

SQL Server 2014 中的聚合

来自分类Dev

将用户友好的Excel工作表导入具有许多外键的SQL Server表中

来自分类Dev

在SQL Server中的多个列上使用Pivot

来自分类Dev

在SQL Server中的两列上联接

来自分类Dev

SQL Server中多个列上的内部联接

来自分类Dev

如何在许多行中的相同ID的SQL Server中的表上进行迭代?

来自分类Dev

存在的SQL查询并计数子查询中的许多字段

来自分类Dev

聚合SQL表中的连续行

来自分类Dev

基于表中维度的SQL聚合

来自分类Dev

聚合SQL表中的连续行

来自分类Dev

SQL Server:查询以从另一个表中获取表数据(计数)作为 VIEW

来自分类Dev

Spark中许多列上的窗口聚合

来自分类Dev

在SQL Server中对聚合执行“任何”的方法

来自分类Dev

SQL Server中的MAX聚合函数

来自分类Dev

没有聚合的SQL Server中的UNPIVOT

来自分类Dev

使用SQL Server 2008 R2在数据透视表查询中的聚合函数

来自分类Dev

SQL Server:使用聚合运算符COUNT()时,打印左表中的所有行

来自分类Dev

SQL Server-如何检索表中每行中每个值的递增计数?

Related 相关文章

  1. 1

    SQL Server中多个列上的聚合函数

  2. 2

    SQL Server中多个列上的聚合函数

  3. 3

    从SQL Server的多个表中删除许多记录的最佳实践

  4. 4

    从SQL Server的多个表中删除许多记录的最佳实践

  5. 5

    SQL Server 2012中的动态数据透视表中的聚合

  6. 6

    多个列上的SQL Server数据透视表

  7. 7

    在SQL子查询中聚合计数

  8. 8

    SQL Server Pivot用于计数联接表中的实例

  9. 9

    从表SQL Server中的每个列获取每个值的计数

  10. 10

    以最优化的方式从sql server表中获取记录计数

  11. 11

    如何获取SQL Server中的联接表的计数?

  12. 12

    SQL Server 2014 中的聚合

  13. 13

    将用户友好的Excel工作表导入具有许多外键的SQL Server表中

  14. 14

    在SQL Server中的多个列上使用Pivot

  15. 15

    在SQL Server中的两列上联接

  16. 16

    SQL Server中多个列上的内部联接

  17. 17

    如何在许多行中的相同ID的SQL Server中的表上进行迭代?

  18. 18

    存在的SQL查询并计数子查询中的许多字段

  19. 19

    聚合SQL表中的连续行

  20. 20

    基于表中维度的SQL聚合

  21. 21

    聚合SQL表中的连续行

  22. 22

    SQL Server:查询以从另一个表中获取表数据(计数)作为 VIEW

  23. 23

    Spark中许多列上的窗口聚合

  24. 24

    在SQL Server中对聚合执行“任何”的方法

  25. 25

    SQL Server中的MAX聚合函数

  26. 26

    没有聚合的SQL Server中的UNPIVOT

  27. 27

    使用SQL Server 2008 R2在数据透视表查询中的聚合函数

  28. 28

    SQL Server:使用聚合运算符COUNT()时,打印左表中的所有行

  29. 29

    SQL Server-如何检索表中每行中每个值的递增计数?

热门标签

归档