Sql 查找“中出现的元素”;每";列中的类别
对于一个名为“Orders”的表,我们得到了这个模式: 以下是此表的可视化,摘自w3school的SQL教程: 我想从每个发货人那里得到至少订购过一次的客户ID 一种方法是认识到只有三个独特的Shipperid(1、2和3),因此我们可以执行三种笛卡尔产品,并通过这种方式识别客户ID。但是,我希望以这样一种方式编写查询,即不管有多少Shipperid是唯一的Sql 查找“中出现的元素”;每";列中的类别,sql,postgresql,relational-division,Sql,Postgresql,Relational Division,对于一个名为“Orders”的表,我们得到了这个模式: 以下是此表的可视化,摘自w3school的SQL教程: 我想从每个发货人那里得到至少订购过一次的客户ID 一种方法是认识到只有三个独特的Shipperid(1、2和3),因此我们可以执行三种笛卡尔产品,并通过这种方式识别客户ID。但是,我希望以这样一种方式编写查询,即不管有多少Shipperid是唯一的 对于关系代数,这可以很简单地用除法来完成。在SQL中有没有一种简单的方法可以进行这样的查询?可能是您可以使用group by。。有一个和
对于关系代数,这可以很简单地用除法来完成。在SQL中有没有一种简单的方法可以进行这样的查询?可能是您可以使用group by。。有一个和一个子选区
select CustomerID
from Orders
group by CustomerID
having count(distinct ShipperID) = ( select count(distinc ShipperID) from Orders)
分组方式为每个CustomerID提供shipperID的编号。。检查这是否等于ShipperID的总和是关于标准SQL、SQL Server还是PostgreSQL的问题?我的错误,这是针对PostgreSQL的。
select CustomerID
from Orders
group by CustomerID
having count(distinct ShipperID) = ( select count(distinc ShipperID) from Orders)