在同一张表的两列中查找值相同的数据

Someguywhocodes

因此,我有一个简单的表格,其中包含每天提供给客户的商品和用户实际使用的商品。

date         |  offered_name  |  used_name  |  h_id
----------------------------------------------------------
2019-06-20   | Obsidian       |  Obsidian   |  100
2019-06-20   | Obsidian       |  Limestone  |  101
2019-06-20   | Limestone      |  Sandstone  |  102
2019-06-21   | Obsidian       |  Limestone  |  100
2019-06-21   | Obsidian       |  Sandtone   |  101
2019-06-21   | Limestone      |  Limestone  |  102

我想查找提供的项目与使用的项目匹配的所有实例。用户可以更改他们的used_item,所以我只关心他们是否至少一次匹配了Provided_name。如果它们从未匹配过,那么我不想选择它们。上面的输出如下所示:

h_id  | used_offered_item_at_least_once
---------------------------------------
100   | 1 
101   | 0 
102   | 1 

与此问题类似,SQL-查找两列相同的所有实例,但我想比较两个不同的列,而不是仅检查一个。

巴巴罗斯·奥赞

您可以使用 conditional aggregation

select h_id,
       cast(sign(sum(case when offered_name = used_name then 
          1 
       else
          0
       end)) as int) as used_offered_item_at_least_once
  from tab
 group by h_id

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章