統計近n天不重複的資料:
hbase表結構設計:
例如:案件x的進件時間分別為5/1、5/2、5/4
進件號進件時間
x5/1
x5/2
x5/4
表a、b的記錄變化如下
1、2、3、4列表示當日與其相差n天的重複案件數
5/1 日進件後表記錄如下:
表a:進件號
進件時間
x5/1
表b:進件號
進件時間
當日進件總數12
34x5/110
0005/2進件後表記錄如下:
表a:進件號
進件時間
x5/2
表b:進件號
進件時間
當日進件總數12
34x5/110
000x
5/2110
00注:1列數字加1,5/2與5/1有重複資料一條
5/3無進件後表記錄如下:
表a:進件號
進件時間
x5/2
表b:進件號
進件時間
當日進件總數12
34x5/110
000x
5/2110
00x5/300
0005/4進件後表記錄如下:
表a:進件號
進件時間
x5/2 --> 5/4
表b:進件號
進件時間
當日進件總數12
34x5/110
000x
5/2110
00x5/300
000x
5/4101
00表a由5/2改為5/4,相差2天,因此2列加1
最後假設統計近三天的進件總數:
取表b進件號
進件時間
當日進件總數12
34x5/110
000x
5/21100
0x5/30000
0x5/41010
0如圖,加粗的資料就是3天內的進件總數,做刪除標記的就是近三天的重複案件數。
計算近n天的資料,可以根據表結構追溯歷史資料,但是計算的時間複雜度為o(n^2),所以結合下面的設計,就可以得到很好的優化:
表a的設計不變,表b增加一列,變化如下:
進件號進件時間
當日進件數
x5/11
進件號進件時間
當日進件數
x5/1
1 -->1
x5/21
進件號進件時間
當日進件數
x5/1
1 -->0
x5/21x
5/30
進件號進件時間
當日進件數
x5/1
1 -->0
x5/2
1 -->0
x5/30x
5/11
結合上面的設計,統計近n天的時間複雜度為o(n)
結合上面的兩種思路,就能使資料去重的計算得到很好的優化
用Excel 隨機抽取不重複n行資料
找了一下,用excel內建的資料分析工具 抽樣,是無法實現隨機抽取n行資料的,只能抽取單個資料。我們只能間接的進行實現 第一步,生成隨機數,並填充。rand 有多少行資料,就填充多少個,只能多,不能少。第二步,取出在生成隨機數中的索引次序,你想要抽取多少個資料,就填充多少個。rank a2,a1 1...
不特定列的不重複次數 公式解讀 統計不重複個數
小夥伴們好啊,今天咱們一起學習一下countif函式的高階應用,來看看如何使用這個函式完成不重複個數的統計。模式化的公式為 這個公式中包含了乙個數學邏輯 任意乙個資料重複出現n次,n個1 n的和值為1。公式中 countif a1 a10,a1 a10 部分是陣列計算,運算過程相當於 countif...
Excel 統計符合條件不重複的個數
iamlaosong文 要求從貨運明細中統計各省某日發貨點數量,公式如下 sumproduct sheet1 l 2 l 1747 b6 sheet1 m 2 m1747 a 1 countif sheet1 u 2 u 1747,sheet1 u 2 u 1747 sheet1是貨運明細,其中l列...