Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查找“中出现的元素”;每";列中的类别_Sql_Postgresql_Relational Division - Fatal编程技术网

Sql 查找“中出现的元素”;每";列中的类别

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

对于一个名为“Orders”的表,我们得到了这个模式:

以下是此表的可视化,摘自w3school的SQL教程:

我想从每个发货人那里得到至少订购过一次的客户ID

一种方法是认识到只有三个独特的Shipperid(1、2和3),因此我们可以执行三种笛卡尔产品,并通过这种方式识别客户ID。但是,我希望以这样一种方式编写查询,即不管有多少Shipperid是唯一的


对于关系代数,这可以很简单地用除法来完成。在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)