統計近n天不重複的資料資訊(優化版)

2021-10-06 22:00:21 字數 1556 閱讀 4859

統計近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列...