因此,我有一个简单的表格,其中包含每天提供给客户的商品和用户实际使用的商品。
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] 删除。
我来说两句