精华内容
下载资源
问答
  • js对象数组计算总计Knowing how to quickly iterate through an array and count objects is deceptively simple. The length() method will tell you the total number of values in the array, but what if you ...

    js对象数组计算总计

    Knowing how to quickly iterate through an array and count objects is deceptively simple. The length() method will tell you the total number of values in the array, but what if you only want to count those values based on certain conditions?

    知道如何快速遍历数组并对对象计数很简单。 length()方法将告诉您数组中值的总数,但是如果您只想根据某些条件对这些值进行计数怎么办?

    For example, imagine you have an array like this:

    例如,假设您有一个像这样的数组:

    const storage = [
      { data: '1', status: '0' },
      { data: '2', status: '0' },
      { data: '3', status: '0' },
      { data: '4', status: '0' },
      { data: '5', status: '0' },
      { data: '6', status: '0' },
      { data: '7', status: '1' },
    ];

    And you only want to count the number of objects with status set to '0'.

    而且,您只想计算status设置为'0'的对象的数量。

    Like with just about everything in programming, there are a number of ways to do this. We'll go through a few of the common methods below.

    就像编程中的几乎所有内容一样,有很多方法可以做到这一点。 我们将介绍以下几种常见方法。

    使用for循环 (Use a for loop)

    Probably the easiest way would be to declare a counter variable, loop through the array, and iterate counter only if status is equal to '0':

    可能最简单的方法是声明一个counter变量,循环遍历数组,仅在status等于'0'时才迭代counter

    const storage = [
      { data: '1', status: '0' },
      { data: '2', status: '0' },
      { data: '3', status: '0' },
      { data: '4', status: '0' },
      { data: '5', status: '0' },
      { data: '6', status: '0' },
      { data: '7', status: '1' },
    ];
    
    let counter = 0;
    for (let i = 0; i < storage.length; i++) {
      if (storage[i].status === '0') counter++;
    }
    
    console.log(counter); // 6

    You could simplify this a bit by using a for...of loop:

    您可以使用for...of循环将其简化一些:

    const storage = [
      { data: '1', status: '0' },
      { data: '2', status: '0' },
      { data: '3', status: '0' },
      { data: '4', status: '0' },
      { data: '5', status: '0' },
      { data: '6', status: '0' },
      { data: '7', status: '1' },
    ];
    
    let counter = 0;
    for (const obj of storage) {
      if (obj.status === '0') counter++;
    }
    
    console.log(counter); // 6

    Also, you could create a function to do the same thing if you have other arrays of objects to count conditionally:

    另外,如果您有其他对象数组有条件地计数,则可以创建一个函数来执行相同的操作:

    const storage = [
      { data: '1', status: '0' },
      { data: '2', status: '0' },
      { data: '3', status: '0' },
      { data: '4', status: '0' },
      { data: '5', status: '0' },
      { data: '6', status: '0' },
      { data: '7', status: '1' },
    ];
    
    function statusCounter(inputs) {
      let counter = 0;
      for (const input of inputs) {
        if (input.status === '0') counter += 1;
      }
      return counter;
    }
    
    statusCounter(storage); // 6

    使用数组方法 (Use array methods)

    JavaScript includes a bunch of helpful methods when working with arrays. Each one can be chained to an array and passed different parameters to work with while iterating through the elements in the array.

    在使用数组时,JavaScript包括许多有用的方法 。 每个对象都可以链接到一个数组,并传递不同的参数以在迭代数组中的元素时使用。

    The two we'll look at are filter() and reduce().

    我们要看的两个是filter()reduce()

    filter() (filter())

    The filter method does just that – it iterates through each element in the array and filters out all elements that don't meet the condition(s) you provide. It then returns a new array with all the elements that returned true based on your condition(s).

    filter方法就是这样做的–遍历数组中的每个元素,并过滤掉所有不符合您提供的条件的元素。 然后,它将返回一个新数组,其中包含根据您的条件返回true的所有元素。

    For example:

    例如:

    const storage = [
      { data: '1', status: '0' },
      { data: '2', status: '0' },
      { data: '3', status: '0' },
      { data: '4', status: '0' },
      { data: '5', status: '0' },
      { data: '6', status: '0' },
      { data: '7', status: '1' },
    ];
    
    const count = storage.filter(function(item){
      if (item.status === 0) {
        return true;
      } else {
        return false;
      }
    });
    
    /*
    [
      { data: '1', status: '0' },
      { data: '2', status: '0' },
      { data: '3', status: '0' },
      { data: '4', status: '0' },
      { data: '5', status: '0' },
      { data: '6', status: '0' }
    ] 
    */

    Now that you've filtered out the object with status: '1', just call the length() method on the new array to get the total count of objects with status: '1':

    现在,您已经过滤掉了status: '1'的对象,只需在新数组上调用length()方法即可获取status: '1'的对象的总数:

    const storage = [
      { data: '1', status: '0' },
      { data: '2', status: '0' },
      { data: '3', status: '0' },
      { data: '4', status: '0' },
      { data: '5', status: '0' },
      { data: '6', status: '0' },
      { data: '7', status: '1' },
    ];
    
    const count = storage.filter(function(item){
      if (item.status === 0) {
        return true;
      } else {
        return false;
      }
    }).length; // 6

    But this can be shortened a lot with ES6 syntax:

    但这可以通过ES6语法大大缩短:

    const storage = [
      { data: '1', status: '0' },
      { data: '2', status: '0' },
      { data: '3', status: '0' },
      { data: '4', status: '0' },
      { data: '5', status: '0' },
      { data: '6', status: '0' },
      { data: '7', status: '1' },
    ];
    
    const count = storage.filter(item => item.status === '0').length; // 6

    reduce() (reduce())

    Think of the reduce() method like a Swiss army knife – it's extremely flexible, and lets you take an array as input and transform it into just about anything. Even better, like filter(), this method returns a new array, leaving the original unchanged.

    reduce()方法想像成瑞士军刀一样,它非常灵活,可以让您将数组作为输入并将其转换为几乎任何东西。 更好的是,像filter() ,此方法返回一个新数组,而原始数组保持不变。

    You can read more about reduce() in this article.

    您可以在本文中阅读有关reduce()更多信息。

    For our purposes, we want to take an array, examine its contents, and produce a number. Here's a simple way to do that:

    为了我们的目的,我们想要一个数组,检查它的内容,并产生一个数字。 这是一种简单的方法:

    const storage = [
      { data: '1', status: '0' },
      { data: '2', status: '0' },
      { data: '3', status: '0' },
      { data: '4', status: '0' },
      { data: '5', status: '0' },
      { data: '6', status: '0' },
      { data: '7', status: '1' },
    ];
    
    const count = storage.reduce((counter, obj) => {
      if (obj.status === '0') counter += 1
      return counter;
    }, 0); // 6

    You could simplify further by using ES6 syntax and a ternary operator:

    您可以使用ES6语法和三元运算符进一步简化操作:

    const storage = [
      { data: '1', status: '0' },
      { data: '2', status: '0' },
      { data: '3', status: '0' },
      { data: '4', status: '0' },
      { data: '5', status: '0' },
      { data: '6', status: '0' },
      { data: '7', status: '1' },
    ];
    
    const count = storage.reduce((counter, obj) => obj.status === '0' ? counter += 1 : counter, 0); // 6

    And even a bit more by using object destructuring:

    通过使用对象分解 ,甚至更多:

    const storage = [
      { data: '1', status: '0' },
      { data: '2', status: '0' },
      { data: '3', status: '0' },
      { data: '4', status: '0' },
      { data: '5', status: '0' },
      { data: '6', status: '0' },
      { data: '7', status: '1' },
    ];
    
    const count = storage.reduce((counter, { status }) => status === '0' ? counter += 1 : counter, 0); // 6

    So those are a few ways to go through the elements of an array and count them conditionally. Now get out there and count with confidence!

    因此,这些是通过数组的元素并有条件地对其进行计数的几种方法。 现在走到那里,充满信心地计数!

    翻译自: https://www.freecodecamp.org/news/how-to-count-objects-in-an-array/

    js对象数组计算总计

    展开全文
  • sql中计算总计金额怎么查 使用运行总计在Excel中比较年份 (Use Running Total to Compare Years in Excel)If you're analyzing sales data from year to year, you can make a line chart that shows each month's ...

    sql中计算总计金额怎么查

    If you're analyzing sales data from year to year, you can make a line chart that shows each month's sales. That lets you see if there were any months with big differences, and shows how sales went up and down over the year. Another option is to use a Running Total to compare years in Excel. It's quick and easy to set up with a pivot table and pivot chart.

    如果您要逐年分析销售数据,则可以制作折线图以显示每个月的销售额。 这样一来,您便可以查看是否存在相差较大的月份,并显示出一年中销售量的增长和下降情况。 另一种选择是使用运行总计来比较Excel中的年份。 使用数据透视表和数据透视表可以快速简便地进行设置。

    显示每月总计 (Show Monthly Totals)

    The quickest way to summarize the annual data is with a pivot table. In the example shown below, the sales date has been grouped by month and year. The year is in the Column area, and the Month (Date) is in the row area. The Sum of quantity is shown in the Values area.

    汇总年度数据的最快方法是使用数据透视表。 在下面的示例中,销售日期已按月份和年份分组。 年在“列”区域中,而“月(日期)”在行区域中。 数量总和显示在“值”区域中。

    runningtotalyearschart02

    创建月度图表 (Create a Monthly Chart)

    A line chart from this summary shows the total for each month, year over year. It shows that 2016 started out well, hit a slump in February, and picked up a bit in March.

    此摘要中的折线图显示了每年逐年总计。 这表明2016年开局良好,2月陷入低迷,3月有所回升。

    It doesn't show the total per year though, and there isn't a way to include the pivot table Grand Total in a pivot chart.

    它没有显示每年的总数,也没有办法在数据透视图中包含数据透视表“总计”。

    runningtotalyearschart03

    显示运行总计 (Show a Running Total)

    Another way to show the data is to create a Running Total. Instead of just seeing each month compared to that month in the previous year, see the overall total at each point in the year.

    显示数据的另一种方法是创建“运行总计”。 不仅要查看与上一年的每个月相比的每个月,还要查看一年中每个时间点的总数。

    Make a copy of the first pivot table, and change its values to show a Running Total:

    复制第一个数据透视表,并更改其值以显示“运行总额”:

    1. Right-click on one of the amounts in the Value,s area

      右键单击“ Value,s”区域中的金额之一
    2. Click Show Values As

      单击将值显示为
    3. Click Running Total In

      单击运行总计
    4. Select Date as the Base Field.

      选择日期作为基础字段。

    There are instructions and a short step-by-step video on my website.

    我的网站上有说明和简短的分步视频

    runningtotalyearschart04

    The new pivot table shows the Running Total over the months for each year.

    新的数据透视表显示了每年几个月的运行总额。

    runningtotalyearschart05

    You could remove the Grand Total, because it is empty when a Running Total is shown.

    您可以删除总计,因为在显示“运行总计”时该总计为空。

    runningtotalyearschart06

    制作枢轴图表以运行总计 (Make a Pivot Chart for Running Total)

    Instead of creating and formatting a new pivot chart, re-use the old one, by making a copy and changing its source data. There's a video of these steps on my Contextures site.

    无需创建新的数据透视图并设置其格式,而是通过复制并更改其源数据来重用旧的数据透视图。 我的Contextures网站上有这些步骤视频

    1. Copy the old pivot chart (for the monthly pivot table).

      复制旧的数据透视图(用于每月数据透视表)。
    2. Then, paste it into another workbook temporarily. Cut it from that workbook, and paste it onto the sheet with the new pivot chart

      然后,将其临时粘贴到另一个工作簿中。 从该工作簿中剪切它,并将其粘贴到具有新数据透视图的工作表上
    3. Right-click the chart, and click Select Data (NOTE: if you right-click in the Plot area, you'll see a short pop-up menu)

      右键单击图表,然后单击“选择数据”(注意:如果在“绘图”区域中单击鼠标右键,将会看到一个简短的弹出菜单)
    4. Click in the Chart Data range box, and click on any cell in the Running Total pivot table

      单击“图表数据”范围框,然后单击“运行总计”数据透视表中的任何单元格
    5. Click OK, to close the dialog box.

      单击确定,关闭对话框。
    runningtotalyearschart07

    运行总计以比较年份 (Running Total to Compare Years)

    In the new chart, you can see the Running Total, to compare years. It shows that the 2016 total is less than the previous year, even though it started out a hit higher in January.

    在新图表中,您可以查看“运行总计”以比较年份。 它表明,尽管2016年1月份开始大幅增长,但其总量却低于上一年。

    runningtotalyearschart08

    显示两个数据透视图 (Show Both Pivot Charts)

    Instead of keeping the pivot charts on separate sheets, you could put both charts on a dashboard, to show different views of the same data. Two pivot charts are better than one! Well, almost always.

    您可以将两个图表放在仪表板上,以显示相同数据的不同视图,而不必将数据透视图保存在单独的工作表中。 两个枢轴图表胜过一个图表! 好吧,几乎总是如此。

    runningtotalyearschart09

    翻译自: https://contexturesblog.com/archives/2016/04/28/use-running-total-to-compare-years-in-excel/

    sql中计算总计金额怎么查

    展开全文
  • SQL Server 汇总数据之计算总计数据 虽然Reportin Service能够轻松地计算总计和小计,而无须查询做额外的工作。但实 践表明,向应用程序提供总计,让其在窗体或网页底端显示它可能很有用。 接下来的三个聚合...

    SQL Server 汇总数据之计算总计数据

    虽然Reportin Service能够轻松地计算总计和小计,而无须查询做额外的工作。但实

    践表明,向应用程序提供总计,让其在窗体或网页底端显示它可能很有用。

    接下来的三个聚合命令将可以提供很好的解决方案。

    一、Rollup 与Cube

    两者基本语法一致:

    group by ....

    with  rollup | cube

    聚合函数Rollup 和Cube在一个独立的行中计算出小计和总计,并在分组依据列中包

    含空值,以指出对应的值为总计。Rollup生成分组依据列的小计和总计行,而Cube扩展

    了这种功能,为每个分组依据列生成总计和小计行,有一个名为grouping()的函数,它在行为总计或小计时返回真(1),否则返回0。

    如:

    --查出工资,并根据部门进行分组,得出总计小计

    select 

    case grouping(C.bmname)

    when 0 then C.bmname

    when 1 then  '工资总计'

    end as 部门名称

    ,sum(A.basic_gz+A.jiaban_gz+A.jiangjin) 部门工资 from gongzi A 

    inner join yuangong B on A.ygid=B.id

    inner join bumen C on B.bmID=c.id

    group by C.bmname

    with Rollup

    --如果group by有多列,则还会返回小计,不只是总计

    结果:

    部门名称 部门工资

    管理部      702

    技术部      5469

    客户部      1878

    销售部      2200

    工资总计  10249

    分组依据多列:

    --查出工资,并根据部门进行分组,得出总计小计

    select 

    case grouping(C.bmname)

    when 0 then C.bmname

    when 1 then  '工资总计'

    end as 部门名称

    ,sum(A.basic_gz+A.jiaban_gz+A.jiangjin) 部门工资 from gongzi A 

    inner join yuangong B on A.ygid=B.id

    inner join bumen C on B.bmID=c.id

    group by C.ID,C.bmname

    with Rollup

    --如果group by有多列,则还会返回小计,不只是总计

    结果:

    部门名称 部门工资

    技术部     5469

    工资总计 5469

    管理部      702

    工资总计  702

    销售部      2200

    工资总计 2200

    客户部     1878

    工资总计 1878

    工资总计 10249

    注:rollup放在group by 子句的后面,命令SQL Server生成一个总计行

    如果使用的是cube,那么总计行与小计行的显示全部放在最后,且支持像rollup分组小计

    ,直接跟着分组后。这是对rollup的一个扩展。

    二、compute 与compute by 

    Compute子句,不是创建聚合查询,而是在常规查询后面添加一个聚合查询。该查询

    返回一个包含明细数据行的常规结果集,然后加上几行,其中包含该结果集的汇总信息。

    compute  聚合函数(列名1),聚合函数(列名2) [by]  分组依据列

    注:加上了by就有了分组小计,而不只是总计,且不可与group by 共同使用,这是为了

    向后兼容才提供的,一般使用Rollup 与cube

    三、创建交叉表查询

    虽然聚合查询能够根据多个列进行分组,但结果分行排列的,不太方便快速查看数据

    。交叉表查询将分组依据列(或一维)逆时针旋转90°,将其变成结果集中的列。

    如:

    Category South East West Total

    X 100  0  20  100

    Y 200  300  50  550

    Z 0 0   100     100

    这是一个根据种类来进行分组,其中每个小组计算的是这种类别各个地区对应的销售量,

    以及这种类别总销售量。

    局限性:分行排列的Group by查询可以有多个聚合函数,而交叉查询只能显示一种

    度量方式(只能计算一种聚合函数)。

    注:术语:交叉表查询,描述的是结果集的外观,而不是创建交叉表的方法。

    有多种方法生成交叉表。

    四、固定列交叉表查询

    创建包含已知的固定列交叉表查询的方法有三种。

    1、使用相关子查询。2、使用Case表达式

    3、使用透视

    1、使用相关子查询

    性能差,对于每个分组依据列的每个度量方式实例执行一次子查询。

    如:

    Select R.Category,

    (select Sum(Amount) from RawData where Region='South' and 

    Category=R.category ) as 'South',

    (select Sum(Amount) from RawData where Region='North' and 

    Category=R.category ) as 'North',

    (select Sum(Amount) from RawData where Region='East' and 

    Category=R.category ) as 'East',

    (select Sum(Amount) from RawData where Region='West' and 

    Category=R.category ) as 'West',

    Sum(Amount) as Total

    from RawData R

    group by Category

    2、使用Case表达式

    使用Case表达式来筛选将被汇总的数据,而不是在相关子查询中筛选数据,这样

    查询引擎可以将整个交叉表查询作为单个基于数据集的操作进行处理。

    注:最适用方便的创建交叉表查询的方法

    如:

      Select R.Category,

    sum(Case Region when 'South' then Amount else 0 end) as South,

    sum(Case Region when 'North' then Amount else 0 end) as North,

    sum(Case Region when 'East' then Amount else 0 end) as East,

    sum(Case Region when 'West' then Amount else 0 end) as West,

      Sum(Amount) as Total

      from RawData R

      group by Category

    order by Category

    这个查询没有使用任何Where子句来筛选RawData表中的数据,Group by 子句根据类

    别对数据集进行划分。然后执行聚合函数为每个类别创建一个结果行。

    注:该查询使用了一个技巧,在Sum()中使用了一个Case表达式,这样每列只考虑

    一个地区的值。

    3、使用透视

    这种方法它在From子句执行聚合函数。并创建一个交叉表,将其作为数据源,

    如将Pivot看作一个用作数据源的表值函数,则它接受两个参数。

    第一个参数是用于对交叉表的值进行计算的聚合函数,第一个参数列出了被透视

    的列。

    基本语法:

    (数据源)

    PIVOT

    (聚合函数)

    条件

    五、动态交叉表查询

    使用PIVOT和游标实现。


    展开全文
  • 1、devexpress表格控件gridcontrol提供了强大的分组功能,你几乎不用写什么代码就可以实现一个分组功能,并且可根据分组计算总计和平均值。这里我例举了一个实现根据班级分组计算班级总人数,总分,平均分的案例。...

    1、devexpress表格控件gridcontrol提供了强大的分组功能,你几乎不用写什么代码就可以实现一个分组功能,并且可根据分组计算总计和平均值。这里我例举了一个实现根据班级分组计算班级总人数,总分,平均分的案例。效果图如下:

    2、实现本功能基本没有代码,只要绑定数据就可以。这是数据代码:

    展开全文
  • 今天要计算一个时间的总用时长,想了一下写了一个方法,记录一下,在这里的时间的事是“yyyy-MM-dd HH:mm:ss”,最后计算的总时长是小时:分:秒; 首先我们将俩个事件转成Date形式,然后获取毫秒数,再进行计算; ...
  • 现在汽车仪表大部分的总计里程和小计里程都是显示在屏幕上的,这包括段码屏、点阵屏、TFT彩屏等,虽然显示形式不一样,但是从业务需求和软件应用层的实现策略来讲,原理应该都是通用的。本文不涉及具体车型,仅对...
  • 3 ---纳税人 计算项目总计
  • 计算表格的总计

    2015-05-20 16:58:58
    计算总和pageAndOrder.addFooterSum(pageAndOrder.ClassName, WarehouseWarrantDetail.class.getName(), null); pageAndOrder.addFooterSum("ROUND(putNum,0)", null, "putNum"); pageAndOrder.addFooter
  • 在工作中,很多时候我们要利用excel做一些数据统计,方法也很多,下面我教大家excel表格如何做总计,简单快速地做一些数据统计。excel表格总计教程:1、打开你要分析的数据文件,选中你要分析的数据(或者你可以随便...
  • 一些简单的方案来计算SQL Server中的运行总计
  • 一些简单的方案来计算SQL Server中的运行总计
  • 上次转载了ADF计算 Table列总计 这篇博文,觉得可以换一种思路来实现总计:sql。  1.在Employees的vo中新建属性TotalSalary,类型没有要求,根据你需要,你设成oracle.jbo.domain.Number或者String都成。    2...
  • 本节书摘来自异步社区《HTML5实战》一书中的第2章,第2.3节,作者: 【美】Rob Crowther , Joe Lennon , ...2.3 计算金额总计,显示表单输出结果 上一节用data-*属性将键/值对数据和数量字段联系起来,将< outpu...
  • 客户设置免税编号,并从总计中除去营业税计算。 描述 一个单页结帐,客户可以设置免税号码并在“付款信息”标签中选择一个州。 这将导致税收计算被绕过。 请注意,您有责任按照法律规定收取所有税款。 安装说明 将...
  • 从聊天计算 这是一个简单的模块,它依赖于“聊天命令”模块。它添加了一个/ calc命令进行聊天,以允许玩家和GM计算多张聊天卡的总掷骰数...当您的等级11笨蛋掷出3个带有猎人标记和不死伤害骑手的神枪手攻击时有用。 ...
  • Delphi报表开发ReportMachine的小计和总计计算 2011年7月2日 分类: Delphi, 开发笔记 最近在做一个Delphi的发货清单的打印程序,其中涉及到需要计算清单的小计和总计的功能,文字难以表达清楚,上图吧...
  • 小计合计总计表格 总计总计重复的Excel小计 (Excel Subtotals With Duplicate Grand Totals)Do you use Excel's Subtotal command to automatically create subtotals in a list? I prefer pivot tables, but still ...
  • Bootstrap-table 表格计算列的和----总计

    万次阅读 2017-12-13 15:02:47
    html中 data-align="center" data-footer-formatter="sumQuantityFormatterModal" 注意 :table要设置为 data-show-footer=”true” js中 /** * 采购数量总计(modal) * * @param data *
  • 27_Pandas按星期,月份,季度和年份的天计算时间序列数据的总计和平均值 将pandas.DataFrame的索引设置为DatetimeIndex对于处理具有日期和时间信息(例如日期和时间)的时间序列数据很有用。 由于DatetimeIndex可以...
  • 比如页面上有一个现成的table TypeA TypeB TypeC 总计 TimeA 0 2 4 6 TimeB 7 0 8 15 TimeC 1 3 7 11 总计 ? ? ? ? 如何通过写程序的方式计算这几列的总计值?
  • 我想要的效果是 列1 列2 列3 总计 行1 行2 行3 foreach (GridViewRow gvr in GridView1.Rows) { foreach (TableCell gvCell in gvr.Cells) ...如何用遍历的方法计算gridview每行的总计
  • 2.计算到某年(X)为止的闰年数: (int)X/4-(int)X/100+(int)X/400 2.1获得能被4整除的所有年份数(取整) 2.2减去能被100整除的世纪年份数(取整) 2.3加上能被400整除的世纪年份数(取整) $time1 = ...
  • Smartforms 总计小计

    千次阅读 2015-07-31 14:36:50
    Smartforms 总计小计
  • dwz table增加总计、小计

    千次阅读 2014-11-18 08:52:35
    dwz table增加总计、小计

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,035
精华内容 16,814
关键字:

怎么计算总计