通過decode計算相似度
之前工作的過程中,我們的使用者系統在使用者註冊的時候會對使用者做一些諸如心情啦愛好之類的調查,老闆提了個有趣的需求,就是希望提供一個功能,可以讓使用者檢視與自己愛好最相似的會員,並且按照相似度由大到小排序。
由於使用者系統是即時都會有更新的,所以靜態的可能性不大,只能使用者查詢的時候動態實現。後來我考慮通過decode實現,示例如下:
假設使用者的愛好等調整項儲存在表a如下
userid col1 col2 col3 col4 col5 col6
------ ---- ---- ---- ---- ---- ----
1 b c b b a c
2 a b a a b a
3 b a b b b d
4 b d a d a d
5 a c c b b b
6 a c b b c d
7 b c d b a d
8 c c b b a d
9 a d a a b c
10 b c a d a c
..................................................
需求:從表中任取一條記錄,求取相似度,並按照與該記錄相似度從大到小排序,如果相似度相同,則按照userid由大到小排序。
例如:求userid=4的相似度排序
USERID COL1 COL2 COL3 COL4 COL5 COL6 DD
------ ----- ----- ----- ----- ----- ----- ----------
10 b c a d a c 0.66
7 b c d b a d 0.5
9 a d a a b c 0.33
8 c c b b a d 0.33
3 b a b b b d 0.33
1 b c b b a c 0.33
6 a c b b c d 0.16
2 a b a a b a 0.16
5 a c c b b b 0
9 rows selected
SQL> select tmp1.*,
2 trunc((decode(col1, 'b', 1, 0) + decode(col2, 'd', 1, 0) +
3 decode(col3, 'a', 1, 0) + decode(col4, 'd', 1, 0) +
4 decode(col5, 'a', 1, 0) + decode(col6, 'd', 1, 0)) / 6,
5 2) dd
6 from tmp1
7 where userid != 4
8 order by dd desc,
11 userid desc
12 ;
USERID COL1 COL2 COL3 COL4 COL5 COL6 DD
------ ----- ----- ----- ----- ----- ----- ----------
10 b c a d a c 0.66
7 b c d b a d 0.5
9 a d a a b c 0.33
8 c c b b a d 0.33
3 b a b b b d 0.33
1 b c b b a c 0.33
6 a c b b c d 0.16
2 a b a a b a 0.16
5 a c c b b b 0
9 rows selected
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-22252/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大規模文字相似度計算
- 文字相似度計算之餘弦定理
- 中文文字相似度計算工具集
- 演算法計算字串的相似度演算法字串
- 同義詞相似度可以怎樣計算
- CCF/CSP認證-第33次-相似度計算
- 機器學習中那些相似度的計算方法及實現機器學習
- 海量資料相似度計算之simhash短文字查詢
- 通過sql 計算兩經緯度之間的距離SQL
- 海量資料相似度計算之simhash和海明距離
- 自然語言處理中句子相似度計算的幾種方法自然語言處理
- NLP segment-05-文字相似度計算 similarity java 開源實現MILAJava
- 利用sklearn計算文字相似性
- 【csp202403-2】相似度計算【第33次CCF計算機軟體能力認證】計算機
- 通過經緯度計算距離實現附近、附近的人等功能
- 【火爐煉AI】機器學習032-使用者之間相似度的計算AI機器學習
- 計算機如何理解事物的相關性-文件的相似度判斷計算機
- 基於word2vec與Word Mover Distance的文件相似度計算
- 基於關鍵詞及問題主題的問題相似度計算
- 文章相似度檢測,相似度檢測工具,原創度檢測工具
- word2vec實現域名向量化並計算相似度-python程式碼Python
- oracle中通過decode實現行變列的二維表統計展示Oracle
- 通過結構計算矩形的面積
- iOS通過加速計計算搖一搖次數iOS
- 基於HBase構建千億級文字資料相似度計算與快速去重系統
- 文章相似度檢測工具哪個好?怎麼讓文章相似度變低?
- 通過遊戲學習計算機架構 - embeddedartistry遊戲計算機架構Dart
- Java通過Fork/Join來優化平行計算Java優化
- 如何計算詞語的相似性(附github)Github
- 廣角攝像頭通過計算攝影使影像的清晰度提高了65%。
- 中文標題相似度檢測
- 困惑度的計算
- 通過計算機語言自定義保留小數計算機
- 通過Python計算一個資料夾大小Python
- 通過pl/sql計算程式的執行時間SQL
- 文字相似性計算--MinHash和LSH演算法演算法
- 使用AVX2指令集加速推薦系統MMR層餘弦相似度計算
- 透過經緯度計算距離獲取附近商家