假设我有一张包含客户订单的表:
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)
(对于无望的伪代码真的很抱歉..只是试图让我的想法得到解决)。
答案 0 :(得分: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