繁体   English   中英

SQL-如何匹配值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM