Mysql GROUP BY похожие поля

Предположим, у меня есть эта таблица с заказами клиентов:

orderid Name         Email      Address_1      Address_2  City*      Zip*
---------------------------------------------------------------------------   
1       James        j@j.com    12 Foo St                 Fooville   1001
2       Alice        a@a.com    92 Bla Road               Sville     3933
3       James        j@j.c0m    12 Foo Street             Fooville   1001
4       james king   j@j.com    12             Foo St     Fooville   1001
5       Anth         ann@h.com  12 Foo Street             Stacker    2932
6       James        j@j.com    12 American St            GiftCity   0283

Чтобы сэкономить на почтовых расходах (для нас), было бы идеально, если бы мы могли отправлять несколько заказов одному и тому же лицу на один и тот же адрес в одном отпечатке. Для этого мне нужна уникальная запись для id 1, 3, 4.

City а также Zip коды не могут быть введены пользователем (выбирается из выпадающего списка).

В идеале я хотел бы, чтобы по моему запросу было возвращено следующее:

orderid Name    Email      Address_1      Address_2  City*      Zip*  Count
---------------------------------------------------------------------------   
1       James   j@j.com    12 Foo St                 Fooville   1001  3
2       Alice   a@a.com    92 Bla Road               Sville     3933  1
5       Anth    ann@h.com  12 Foo Street             Stacker    2932  1

По сути, алгоритм SQL делает группировку по похожим на следующие столбцы: Name, Email, concat(Address_1 and Address_2),

Любые советы и решения будут высоко оценены.

Если есть способ сделать

GROUP BY similar((concat(name,email,address_1) 

(очень жаль за безнадежный псевдокод.. просто пытаюсь донести свои мысли).

1 ответ

Ну, вместо обсуждения здесь запрос изменить в соответствии с вашими требованиями

select 
    orderid , 
    name , 
    email , 
    address_1 , 
    address_2 , 
    city , 
    zip , 
    count(orderid) 
from test 
group by name
order by orderid

Приносит это

    Name        Email       Address_1    Address_2  City        Zip Count
1   James       j@j.com     12 Foo St           Fooville        1001    3
2   Alice       a@a.com     92 Bla Road         Sville          3933    1
4   James King  j@j.com     12 Foo St           Fooville        1001    1
5   Anth        ann@h.com   12 Foo St           Stacker         2932    1
Другие вопросы по тегам