【问题标题】:algorithm sum and group by Array data [closed]数组数据的算法总和和分组[关闭]
【发布时间】:2013-12-30 03:17:57
【问题描述】:

我需要一些帮助。我正在使用 vb.net 和 javascript。

我有这样的数据集,

Row     Price     ProductID     Region

1       100       12345         JK1

2       100       12345         JK2

3       100       23456         JK1

4       100       23456         JK2

我需要结果 JK1 = 200 和 JK2 = 200。结果是按地区汇总所有价格与 grup。可能在 SQL 中这很简单,但在编程中我没有尝试过。

我需要 vb.net 或 javascript 中的算法。问题是,该地区有很多变化,我不知道那是多少。

有人可以帮忙吗?

【问题讨论】:

  • 你可能也想看看这个stackoverflow.com/questions/11199653/…
  • get it into javascript array 可以这样做:jsfiddle.net/3UsJa
  • @noctis 我不需要代码,我只需要算法..
  • @nnnnnn 这并不像你想象的那么简单,我尝试了很多方法,尝试构建算法.. 只是检查区域?我说该地区包含太多变化,循环它并没有给出解决方案。对不起我的语言不好,但我没那么愚蠢。谢谢。
  • 为什么不试试 VB.NET 中的 DataTable.Compute 方法?

标签: javascript vb.net algorithm group-by sum


【解决方案1】:

我喜欢为此目的使用字典。我对数据集并没有太多经验,但对于这个例子来说并不重要。我将输入定义为 List(Of RegionPrice) 与

Structure RegionPrice
  Dim Region as String
  Dim Price as Integer
End Structure
[...]
Dim Data as List(Of RegionPrice) = ....

只需遍历您的数据并获取当前商品的地区和价格。那么

Dim dictSum as New Dictionary(Of String, Integer)
For i = 0 to Data.Count - 1
  If dictSum.ContainsKey(Data(i).Region) Then
    dictSum(Data(i).Region) += Data(i).Price
  Else
    dictSum.Add(Data(i).Region,Data(i).Price)
  End If
Next

然后,您将在字典中获得每个地区所需的总和。 也许这有助于解决这类问题。

【讨论】:

    【解决方案2】:

    DataTable.Compute方法可以帮到你:

    Dim sumPrice As Object = dataTable.Compute("Sum(Price)", "Region ='" + "JK1" + "'")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 2020-02-02
      • 2022-10-18
      • 2022-10-12
      • 1970-01-01
      相关资源
      最近更新 更多