每个行组合的 SQL 总计

Posted

技术标签:

【中文标题】每个行组合的 SQL 总计【英文标题】:SQL total for each row combination 【发布时间】:2021-08-14 00:32:15 【问题描述】:

是否有任何类型的聚合函数可以帮助计算以下内容?

如果我有以下数据,我想要每个重复行的总和。

   date    |  country     | color | measure |  left | position 
---------------------------------------------------------------
2020-02-01  united states  red        33       5.3      none  
2020-02-01  united states  red        33       5.3      none  
2020-02-01  united states  red        33       5.3      none  
2020-02-03  vietnam        green      44       9.2      none  
2020-02-01  united states  red        33       5.3      none  
2020-02-01  united states  red        33       5.3      none  
2020-02-03  vietnam        green      44       9.2      none  
2020-02-01  canada         yellow     20       3.1      none  
2020-02-06  mexico         orange     2        9.0      miss
2020-02-06  mexico         red        1        3.0      none

输出将提供total 每行出现的数字:

   date    |  country     | color | measure |  left | position | total
-----------------------------------------------------------------------
2020-02-01  united states  red        33       5.3      none      5
2020-02-03  vietnam        green      44       9.2      none      2
2020-02-01  canada         yellow     20       3.1      none      1
2020-02-06  mexico         orange     2        9.0      miss      1
2020-02-06  mexico         red        1        3.0      none      1

【问题讨论】:

搜索“按教程计算分组”。这似乎是一个微不足道的查询。 看起来像count(*) 【参考方案1】:

为什么不是好旧的group bycount

  select date,
         country,
         color,
         measure,
         left,
         position,
         count(1) as total      
    from MyTable
group by date,
         country,
         color,
         measure,
         left,
         position

【讨论】:

以上是关于每个行组合的 SQL 总计的主要内容,如果未能解决你的问题,请参考以下文章

用于组合/背包的动态 T-SQL 方法

更新表以按分组列显示总计 SQL Server 2008 R2

组合 SQL 行

如何使用交叉连接查找行>列组合? [SQL]

计算所有项目总计到小计 Jquery

SQL Server:如何组合行