[英]SQL - How to Match Values?
我在网上找到了该练习本,但不知道从哪里开始。
给定一个具有三列(id,类别,值)的表,每个id具有3个或更少的可能值(价格,大小,颜色)。
现在,我如何找到两个或多个值相互匹配的ID?
例如:ID1(价格10,尺寸M,红色),ID2(价格10,尺寸L,红色),ID3(价格15,尺寸L,红色)。
然后输出应为两行:ID1 ID2和ID2 ID3
使用最后注释中可重复显示的数据帧DF
:
library(sqldf)
sqldf("select a.ID first, b.ID second
from DF a
join DF b on (a.price = b.price) +
(a.size = b.size) +
(a.color = b.color) > 1 and
a.ID < b.ID")
赠送:
first second
1 1 2
2 2 3
DF <- data.frame(ID = 1:3,
price = c(10, 10, 15),
size = c("M", "L", "L"),
color = "Red",
stringsAsFactors = FALSE)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.