我撕開了所有的美國郵政編碼,搜索結果包括每個搜索的多個位置。我現在想弄清楚我需要搜索的最小郵編數量,以返回相同的唯一位置結果。例如郵政編碼12345返回商店A,B,C,D和郵政編碼12347返回A,B,C和郵政編碼12349返回B,C,D;我想獲得12345,因爲它獲得了所有的商店。算法最少的郵政編碼找到一組數據
0
A
回答
1
我假設你有兩列,郵編和商店的數據。任何給定的郵政編碼和商店可能會在數據中出現多次。
從技術上講,你要求的是一個覆蓋集。每個郵政編碼「覆蓋」一組商店。您正在尋找最小尺寸(最少郵編)的覆蓋物。
很容易得到一個覆蓋集。這裏是一個例子:
select distinct zipcode
from (select store, min(zipcode) as zipcode
from t
group by store
) t
對此的修改可能會讓你接近你想要的。對於每家商店,如果您選擇涵蓋該郵政編碼最多商店的郵政編碼,那麼您將擁有一個用於選擇覆蓋集的貪婪算法。這裏有一種方法:
select distinct zipcode
from (select store, zipcode
from (select store, zipcode, count(*) as numstores,
row_number() over (partition by store order by count(*) desc) as seqnum
from t
group by store, zipcode
) t
where seqnum = 1
) t
貪婪算法,但不能保證產生最小數量的郵政編碼。不幸的是,我不認爲你的問題的一般解決方案在SQL中是可行的,因爲你需要考慮所有的郵政編碼組合。然後確定涵蓋所有商店的最小尺寸。儘管如此,上面的查詢可能足以滿足您的需要。
+0
我認爲第二個例子對於我正在嘗試做的事情已經足夠了。謝謝。 – OnTheFly
0
Select zip_code,max(stores) from (Select zip_code,count(1) stores from mytable
Group by zip_code)
相關問題
- 1. 查找給定郵政編碼的最近郵政編碼
- 2. MySQL在每個郵政編碼中找到最貴的郵政編碼
- 3. 郵編最近的郵政編碼?
- 4. 查找附近的郵政編碼與基礎郵政編碼
- 5. 根據郵政編碼估算稅款
- 6. 通過郵政編碼找到最近的露營地
- 7. 如何實現從距離給定的郵政編碼中找到最近的英國郵政編碼?
- 8. 映射一組郵政編碼
- 9. 匹配郵政編碼並檢索該郵政編碼的其他數據
- 10. 加拿大郵政'查找郵政編碼'屏幕刮碼
- 11. 郵政編碼
- 12. 少就是多 - 自動郵政編碼?
- 13. 通過匹配郵政編碼字符串找到最接近其他英國郵政編碼的英國郵政編碼字符串
- 14. 免費郵政編碼數據庫?
- 15. MySQL的歸國最低郵政編碼
- 16. 在oracle中存儲郵政編碼的最佳數據類型
- 17. 不能找到一個現有的郵政編碼
- 18. 需要幫助查找特定郵政編碼的KML數據
- 19. 在數組中查找郵政編碼忽略大小寫
- 20. 紅寶石地理編碼器寶石找到郵政編碼
- 21. 郵政編碼距離計算器
- 22. 郵政編碼距離計算
- 23. PHP根據郵政編碼計算郵遞費用
- 24. 谷歌地圖API是無法找到郵政編碼22222
- 25. 美國郵政編碼位於2郵政編碼的中間?
- 26. 格式化郵政編碼和郵政編碼的文本框
- 27. 按郵政編碼
- 28. 哪個郵政編碼與Geokit最近?
- 29. 谷歌API查找最近的郵政編碼
- 30. 查找最接近的郵政編碼,經緯度在MySQL
但是基於哪個12345將被返回,您輸入的參數是什麼,即您提交什麼作爲搜索條件? – amphibient
你能告訴我們更多關於你的桌子嗎? – woz
感謝您的快速回復。數據有郵政編碼,然後是商店數據。我從商店號碼中獲得獨特的數據。所以基本上一個郵政編碼會返回0-很多商店,然後我將它們分開,所以我有一個帶有zip和storeNum的表格,我可以將其綁定回原始表格。我希望能夠刷新數據而無需再次通過每個郵政編碼。我認爲戈登Linoff的答案會起作用。我今晚會嘗試。 – OnTheFly