我有了這個problem..I有以下格式的CSV文件(客戶,購買項目對):做支點與LINQ
customer1 item1
customer1 item2
customer1 item3
customer2 item4
customer2 item2
customer3 item5
customer3 item1
customer3 item2
customer4 item1
customer4 item2
customer5 item5
customer5 item1
現在,我想在查詢結果中顯示:
item x; item y; how many customers have bought itemx and item together
例如:
item1 item2 3 (because cust1 and cust2 and cust3 bought item1 and item2 together)
item1 item5 1 (because cust5 and cust3 bought item1 and item5 together)
查詢返回客戶在對已購買的物品的所有可能的組合。另請注意Pair(x,y)與Pair(y,x)相同。
SQL查詢應該是這樣的:
SELECT a1.item_id, a2.item_id, COUNT(a1.cust_id) AS how_many_custs_bought_both
FROM data AS a1
INNER JOIN data AS a2
ON a2.cust_id=a1.cust_id AND a2.item_id<>a1.item_id AND a1.item_id<a2.item_id
GROUP BY a1.item_id, a2.item_id
你會怎麼做,在C#1),使用常規的/使用的foreach循環LINQ 2)?
我試着在LINQ中做這件事,但當我注意到LINQ在連接子句中不支持多個equals關鍵字時卡住了。然後,我嘗試使用普通循環,但是,它變得如此無效,以至於它每秒只能處理30行(CSV文件行)。
請指教!
你試過的linq聲明在哪裏?該.csv文件的分隔符是什麼。爲什麼不把這個查詢放到存儲過程中,或者爲什麼不使用'system.data.sqlclient'類並使用參數化查詢..? – MethodMan