現在有上百萬條記錄,可以根據ID分為幾十萬組資料,每個ID下存在不同組合,請教各位如何將分類出這些組合來?
如
ID 產品 價格
111 A 10
111 B 5
111 C 9
222 A 10
222 B 5
我想得到 包含 A B C 的有多少? 包含 AB的有多少?
只要給個提示,我慢慢琢磨!
uj5u.com熱心網友回復:
兩種方式吧1、 SQL 里直接分析 用 decode() , 得到類似以下串列
id 產品A數量, 產品B數量, 產品C數量
ORACLE 是 decode , MYSQL 好像是 when case
2、 python
遍歷 所有資料, 建立 字典串列 product 的值是集合, 這樣好操作, 直接并集即可。
[{'id' : '111' , 'product' : ('A','B','C')},
{'id' : '222' , 'product' : ('A','B')}]
最后再遍歷字典串列 得到目標串列
uj5u.com熱心網友回復:
謝謝你,不好意思 可能我還是沒有說清楚,我現在不知道組合是有哪些,可能是abc,abcd 等等 首先想知道到底有多少種組合,abc bac位置不同但是視為一個組合,現在需要知道不同組合有多少個IDuj5u.com熱心網友回復:
那就用第2種方法。 我以前寫過類似的程式, 計算組合數。 記錄資料用字典, 組合用集合, 這樣能保證 abc bac視為一個組合uj5u.com熱心網友回復:
非常感謝 先試試轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/95160.html
