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

Sql 计数匹配对

Sql 计数匹配对,sql,count,matching,Sql,Count,Matching,这有点复杂,请耐心听我说。下面是一个名为“列表”的表,共有2列。表中有每个成员的数据以及他们喜欢的电影。i、 e成员01喜欢电影02、05、14、21和25。我想知道的是每个成员和另一个成员有多少类似的电影。例如,成员01和成员02有一个共同的胶片(胶片14)。有没有办法用SQL写这个 List ------ ------ member film ------ ------ 01 02 01 05 01

这有点复杂,请耐心听我说。下面是一个名为“列表”的表,共有2列。表中有每个成员的数据以及他们喜欢的电影。i、 e成员01喜欢电影02、05、14、21和25。我想知道的是每个成员和另一个成员有多少类似的电影。例如,成员01和成员02有一个共同的胶片(胶片14)。有没有办法用SQL写这个

       List
------      ------
member      film
------      ------
01          02
01          05
01          14
01          21
01          25
02          03
02          09
02          14
03          01
03          05
03          17
03          21

您可以使用自连接和聚合为此编写常规查询。以下总结了每对用户的结果:

select l1.member, l2.member, count(*) as NumFilmsInCommon
from list l1 join
     list l2
     on l1.member < l2.member and l1.film = l2.film
group by l1.member, l2.member;
选择l1.member、l2.member、count(*)作为NumFilmsInCommon
从列表l1连接
列表l2
关于l1.member