Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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_Oracle_Compare - Fatal编程技术网

sql比较整个数据集

sql比较整个数据集,sql,oracle,compare,Sql,Oracle,Compare,我有两组数据,我想比较与特定usr id相关的所有数据。如果这些数据不完全匹配,那么给我一个空值 下面我应该得到user_id=null,因为不是列访问中的所有数据都相同 set a user_id | access 1001 | hotel 1001 | spa 1001 | gym set b user_id | access 1001 | hotel 1001 | spa 1001 |

我有两组数据,我想比较与特定usr id相关的所有数据。如果这些数据不完全匹配,那么给我一个空值

下面我应该得到user_id=null,因为不是列访问中的所有数据都相同

set a
user_id     | access 
1001        | hotel
1001        | spa
1001        | gym

set b
user_id     | access 
1001        | hotel
1001        | spa
1001        | pool
set a
user_id     | access 
1001        | hotel
1001        | spa
1001        | gym

set b
user_id     | access 
1001        | hotel
1001        | spa
1001        | gym
在下面的例子中,我应该得到user_id=1001,因为列访问中的所有数据都是相同的

set a
user_id     | access 
1001        | hotel
1001        | spa
1001        | gym

set b
user_id     | access 
1001        | hotel
1001        | spa
1001        | pool
set a
user_id     | access 
1001        | hotel
1001        | spa
1001        | gym

set b
user_id     | access 
1001        | hotel
1001        | spa
1001        | gym
要获得这种效果,sql查询应该是什么样子?
我正在处理Oracle数据库。

如果您有两个独立的表,并且希望用户完全相同,那么
listag()
是一个简单的解决方案:

select a.user_id
from (select user_id, listagg(access, ',') within group (order by access) as accesses
      from a
      group by user_id
     ) a join
     (select user_id, listagg(access, ',') within group (order by access) as accesses
      from b
      group by user_id
     ) b 
     on a.user_id = b.user_id and a.accesses = b.accesses;

你试过什么?去读减号运算符。这张表是什么样子的?没有什么是SQL,它被称为“集合”。