1
假設我有此表客戶訂單:Mysql的GROUP BY類似領域
orderid Name Email Address_1 Address_2 City* Zip*
---------------------------------------------------------------------------
1 James [email protected] 12 Foo St Fooville 1001
2 Alice [email protected] 92 Bla Road Sville 3933
3 James [email protected] 12 Foo Street Fooville 1001
4 james king [email protected] 12 Foo St Fooville 1001
5 Anth [email protected] 12 Foo Street Stacker 2932
6 James [email protected] 12 American St GiftCity 0283
爲了節省郵資費用(我們),這將是理想的,如果我們可以發送多個訂單要到同一個人 ,到同一地址放在一張打印單上。爲此,我需要一個唯一的記錄ID爲1,3,4.
City
和Zip
代碼不能由用戶輸入(從下拉列表中選擇)。
理想情況下,我想下面由我的查詢將返回:
orderid Name Email Address_1 Address_2 City* Zip* Count
---------------------------------------------------------------------------
1 James [email protected] 12 Foo St Fooville 1001 3
2 Alice [email protected] 92 Bla Road Sville 3933 1
5 Anth [email protected] 12 Foo Street Stacker 2932 1
本質上來說,SQL算法是通過對以下各列類似做一組:Name
,Email
,concat(Address_1 and Address_2)
。
的任何建議和解決方案將高度讚賞。
如果有一種方法做
GROUP BY similar((concat(name,email,address_1)
(的確確是無望的僞代碼抱歉..只是想了解我的想法)。
什麼是「相似」的規則?在你的例子中,'Foo Street'等於'Foo St',這非常值得猜測。 – Vatev 2012-07-26 18:11:33
您每天有多少訂單?你可以做一個人類觀衆手動審查?此外,您可以使用確定Zip + 4代碼的地址驗證服務,然後在Zip + 4代碼上進行比較。 – mellamokb 2012-07-26 18:12:44
如果一個人看到了第一張桌子,他們將能夠輕鬆地繪製出第二張桌子。有沒有辦法通過混合使用mysql函數來做到這一點? – 2012-07-26 18:14:17