我无法弄清楚如何编写SQL代码以拉出表2中出现的rownames计数,表2中的rowumber为+/- 1.例如,我会计算'Exclusive'和“流行剧集”出现在两者中,因为rownumber在彼此之内。但我不会算“热门电影”,因为差距是> 1.通常我会对表进行交互,但我只知道如何使用INTERSECT进行完全匹配。
Table 1
+------------------+-----------+
| rowname | rownumber |
+------------------+-----------+
| Exclusive | 1 |
| Popular Movies | 3 |
| New Seasons | 7 |
| Popular Episodes | 8 |
+------------------+-----------+
Table 2
+------------------+-----------+
| rowname | rownumber |
+------------------+-----------+
| Exclusive | 2 |
| Popular Episodes | 7 |
| Popular Movies | 8 |
+------------------+-----------+
提前感谢您的帮助!
答案 0 :(得分:2)
为什么不进行简单的加入?类似的东西:
SELECT rowname
FROM t1 JOIN t2 ON t1.rowname = t2.rowname
WHERE t1.rownumber - t2.rownumber BETWEEN -1 AND 1
只需修改名称即可。
如果您只想要数字,请选择SELECT COUNT(rowname)。
答案 1 :(得分:0)
如果您将任一表中的空白记录视为0,就像“新季”一样,如果它是1,则使用LEFT JOIN代替。
SELECT t1.rowname
FROM table1 t1
LEFT JOIN table2 t2
ON t1.rowname = t2.rowname
WHERE COALESCE(t1.rownumber,0) - COALESCE(t2.rownumber,0) BETWEEN -1 AND 1