RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [DB] [問題] 請問得獎名單地理區域平均篩選怎麼做 ?   字型大小:||| 
Yves
鐵驢友〔中級〕
等級: 5等級: 5


今日心情

 . 積分: 52
 . 文章: 83
 . 收花: 246 支
 . 送花: 45 支
 . 比例: 0.18
 . 在線: 274 小時
 . 瀏覽: 22961 頁
 . 註冊: 6277
 . 失蹤: 1381
#1 : 2012-9-30 04:35 AM     全部回覆 引言回覆

我怎麼記得現在是22縣市
用資料庫來做的話,可以用cursor或tempdb來做
前提是要確定縣市大家填的字眼都是一樣(不然會有 台北市 臺北市 北市 這樣會變成3個不同的區域)

假設前三碼是縣市
1. Select count(1), 地址前三碼 from ... group by 地址前三碼 order by count(1)
insert到tempdb (次數最少的排在上面)
並Select出所有的筆數丟到變數裡
***第一步驟要確認的是 挑出來行數的是否少於22(縣市), 避免有人亂填(我就常亂填...)

2. 從最少的開始(所以剛剛有排序)
Select max(次數/總次數*200,1)   得到該地區得獎人數
**用max是因為 最少要抽1位. 至於要不要4捨5入就隨意啦
***注意: 因為有進位的問題. 所以要設變數去統計得獎人數 避免超過200人

3. Select 該地區 去rand出那些人得獎

4.迴圈到2 換下一個縣市

PS. 第2點比例要更精準的話 就是 (地區次數)/(總人次-已rand過的區域次數)*(200-已用掉的人數)
不然所有被進位的人數都會扣在最後(最多人)的區域

[Yves 在  2012-9-30 04:46 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-5-16 08:52 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.017911 second(s), 7 queries , Qzip disabled