以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教一个“率”应如何算出  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2984)

--  作者:hejfen
--  发布时间:2009/6/2 0:02:00
--  请教一个“率”应如何算出
如果是相同的用户名称,用户的投拆时间不超过24小时的,称为重复投拆,如果(重复投拆的宗数/(总记录数-重复投拆的宗数))*100%=重复投拆率,请教各位大师,这个重复投拆率如何得出?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:a.table

[此贴子已经被作者于2009-6-2 0:04:26编辑过]

--  作者:八婺
--  发布时间:2009/6/2 1:09:00
--  
看来偶是完不成,帮你顶一下。
--  作者:八婺
--  发布时间:2009/6/2 1:37:00
--  
这样行不行?

Dim dt As DataTable = DataTables("表A")
Dim tss As List(Of String) = dt.GetUniqueValues("[用户名称] Is Not NULL","用户名称")
For Each ts As String In tss
    Dim drs As List(Of DataRow) = dt.Select("[用户名称] = \'" & ts & "\'", "投诉时间")
    For i As integer = 1 To drs.Count - 1
        Dim t As TimeSpan = drs(i)("投诉时间") - drs(i-1)("投诉时间")
        drs(i)("第十列") = t.Days
    Next
Next

For Each dr As DataRow In dt.DataRows
    Dim Count As Integer = dt.Compute("Count(用户名称)","[用户名称] = \'" & dr("用户名称") & "\'")
    Dim Count1 As Integer = dt.Compute("Count(第十列)","[用户名称] = \'" & dr("用户名称") & "\' And [第十列] = 0")
    If dr.IsNull("投诉时间") = false Then
        dr("重复投诉率") = Count1 / Count * 100
    End If
Next


--  作者:八婺
--  发布时间:2009/6/2 1:38:00
--  
忘了上传文件了。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目14.table


--  作者:yangming
--  发布时间:2009/6/2 10:00:00
--  
以下是引用八婺在2009-6-2 1:38:00的发言:
忘了上传文件了。

 下载信息  [文件大小:340.0 KB  下载次数:4]
图片点击可在新窗口打开查看点击浏览该文件:管理项目14.table

下载学习!


--  作者:hejfen
--  发布时间:2009/6/2 10:43:00
--  

理解上应是这样吧,如果有10条投拆记录,有1条是符合属于重复投拆条件的,可以认为重复投拆率是10%。