2013-04-25 94 views
0

我有這個SQL,但我需要將其轉換爲Linq查詢。難以嘗試使用分區/ rownum和patition/count在一起。需要將此SQL轉換爲LINQ

Select TOP 1 vals.c3, (vals.Rank * vals.[Occurances]) as RNK 
FROM (
SELECT ROW_NUMBER() OVER(ORDER BY c1 asc) as Rank, Count(*) Over(Partition By c3) As [Occurances], c3 
FROM dbo.ranks 
WHERE c2 in ('ADAMS', 'CHIP', 'SHOP') 
group by c3,c2,c1 
) vals 
--group by vals.c3 
ORDER BY RNK desc 

這將是什麼隊伍名單,如:

c1  c2  c3 
26774 CHIP  Chipshop 
26054 SHOP  Shops 
10054 SHOP  Chipshop 
23037 MEDICAL Doctors 
21434 CENTRE Doctors 
12803 DENTAL Dentists 
11847 OFFICE Post Offices 

C2是字,C3是我要找的類別。 c1是每個類別出現該詞的頻率。所以當我進入搜索'亞當斯芯片商店'時,它會去找到基於該名稱的最可能的類別匹配。

任何幫助,將不勝感激:)

回答

0

試試這個工具。它確實是你想要的。

Linqer