Sql 如何识别引用同一元素的最常见类别?
我有两个关系:Sql 如何识别引用同一元素的最常见类别?,sql,algorithm,postgresql,math,Sql,Algorithm,Postgresql,Math,我有两个关系:位置(类别,项目)和项目(项目) 每个项目可以在多个类别下列出 什么样的SQL查询可以用来确定从Location(category,item)中最常包含相同项的两个类别 注意:我正在寻找SQL语句,但我将此问题标记为算法/数学,因为如果无法提供SQL查询,我愿意接受算法形式的解决方案。您可以在SQL中使用join和groupby轻松完成此操作。将位置表连接到项上的自身,然后计算匹配项。按此降序排序,如果您想要匹配最多的一对,请选择第一对: select l1.category, l
位置(类别,项目)
和项目(项目)
每个项目可以在多个类别下列出
什么样的SQL查询可以用来确定从Location(category,item)
中最常包含相同项的两个类别
注意:我正在寻找SQL语句,但我将此问题标记为算法/数学,因为如果无法提供SQL查询,我愿意接受算法形式的解决方案。您可以在SQL中使用
join
和groupby
轻松完成此操作。将位置
表连接到项
上的自身,然后计算匹配项。按此降序排序,如果您想要匹配最多的一对,请选择第一对:
select l1.category, l2.category, count(*) as cnt
from location l1 join
location l2
on l1.item = l2.item and
l1.category < l2.category
group by l1.category, l2.category
order by count(*) desc
limit 1;
.id应为。项目我无法编辑,因为我必须编辑至少6个字符。谢谢,你的解决方案有效!
select l1.category, l2.category, count(distinct l1.item) as cnt