我需要使用「排名」列將以下臨時表的結果分組結果的幫助。尋找與「模糊」排名邏輯的最佳匹配
臨時表(MS SQL)如下:
student_address | school_address | student_st| school_st| district | districtID | rank
---------------------------------------------------------------------------------------
123 some street | 12 apple way | CT | CT | 322 | 322 | 0.2
123 some street | 33 pear street| CT | NJ | 039 | 039 | 0.1
333 another st. | NULL | VT | NULL | 111 | 111 | 0.0
我填充@temp表作爲這樣:
SELECT st.student_address, sc.school_address, st.student_st, sc.district, st.districtID, '0.0' as rank
FROM students st
LEFT OUTER JOIN schools sc
ON st.[District ID] = sc.District
ORDER BY st.[District ID] asc;
我由一系列跟着我臨時表的結果根據某些規則(例如,學校與學生之間不匹配= 0.0,僅區域匹配= 0.1,區域匹配&州匹配= 0.2等)更新「等級」列的更新。最終的結果是排名高的行更可能顯示學生的實際學校與排名較低的行。
我需要幫助的是最終查詢。我基本上想要返回所有學生信息(來自原始學生表的所有行)和最有可能的相應學校(由等級確定)。
類似的信息(僞代碼)
select student_address, student_st, student_etc, school_address
from @temp
where rank = max(rank)
group by student_address
我知道上面是不正確的SQL,但我希望它給你一個想法是什麼,我想達到什麼目的?
感謝您的任何指導。
謝謝,但是和我對傑夫下面的迴應一樣。 –
更新了查詢。@ CodeSherpa –
謝謝,這對我很有幫助。 –