高级MySQL分组查询
我有一家网上商店,订单如下:高级MySQL分组查询,mysql,Mysql,我有一家网上商店,订单如下: id purchase_date buyer_name buyer_email product_name delivery_status 1 10.09.2014 jo smith jo@smith.com dildo delivered 2 10.09.2014 jo smith jo@smith.com superdildo delivered 3 11.09.2014 john l
id purchase_date buyer_name buyer_email product_name delivery_status
1 10.09.2014 jo smith jo@smith.com dildo delivered
2 10.09.2014 jo smith jo@smith.com superdildo delivered
3 11.09.2014 john lol jo@lol.com cream delivered
4 13.09.2014 john lol jo@lol.com supercream not delivered
5 15.09.2014 john doe john@doe.com lingerie delivered
6 15.09.2014 john doe john@doe.com lingerie2 not delivered
7 15.09.2014 feels no ff@trol.com supercream delivered
8 18.09.2014 jo smith jo@smith.com cream not delivered
我想从此表中选择所有不同的买家电子邮件,其中
当天所有客户订单均已“交付”
我的意思是:
ID 1和2将是匹配项,查询应输出jo@smith.com,因为他当天的两份订单都已交付
ID 3也会匹配,因为所有订单jo@lol.com于当日(2014年9月11日)交付
ID 4在查询中不匹配(并非该名称当天的所有订单都已交付)
ID 5和6也不匹配
ID 7是一个匹配项
ID 8不匹配。选择不同的买家\u电子邮件
select distinct buyer_email
from your_table
group by buyer_email, purchase_date
having sum(delivery_status <> 'delivered') = 0
从你的桌子上
按买家电子邮件、购买日期分组
总和(交付状态为“已交付”)=0
选择不同的买家\u电子邮件
从你的桌子上
按买家电子邮件、购买日期分组
总和(交付状态为“已交付”)=0
选择不同的买家\u电子邮件
从你的桌子上
按买家电子邮件、购买日期分组
总和(交付状态为“已交付”)=0
选择不同的买家\u电子邮件
从你的桌子上
按买家电子邮件、购买日期分组
总和(交付状态为“已交付”)=0
您需要一个带有having
子句的聚合。至少从一开始。以下为已完全交付订单的天数和买家:
select o.purchase_date, o.buyer_email
from orders o
group by o.purchase_date, o.buyer_email
having sum(delivery_status <> 'delivered') = 0;
如果需要整行,可以使用
join
如果需要使用having
子句进行聚合。至少从一开始。以下为已完全交付订单的天数和买家:
select o.purchase_date, o.buyer_email
from orders o
group by o.purchase_date, o.buyer_email
having sum(delivery_status <> 'delivered') = 0;
如果需要整行,可以使用
join
如果需要使用having
子句进行聚合。至少从一开始。以下为已完全交付订单的天数和买家:
select o.purchase_date, o.buyer_email
from orders o
group by o.purchase_date, o.buyer_email
having sum(delivery_status <> 'delivered') = 0;
如果需要整行,可以使用
join
如果需要使用having
子句进行聚合。至少从一开始。以下为已完全交付订单的天数和买家:
select o.purchase_date, o.buyer_email
from orders o
group by o.purchase_date, o.buyer_email
having sum(delivery_status <> 'delivered') = 0;
如果需要整行,可以使用连接