![](/img/trans.png)
[英]SQL - join two tables, but get average of the joined column only by left table occurrences
[英]Column populated with table string occurrences joined to original SQL table
我想查询一个显示我的原始数据的表以及一个根据条件('Type' NOT LIKE '%jack%')计算值('ID')出现次数的列
ID | 大的 | 医学 | 类型 |
---|---|---|---|
1001 | X | 1 | 木材杰克 |
1002 | 是的 | 2 | 杰克刀 |
1001 | z | 3 | 彼得潘 |
1005 | 一个 | 4 | 摇滚明星 |
1005 | b | 5 | 纸手 |
1007 | c | 6 | 到月球 |
示例:出现 2 次 ID = 1001,但只有一个在“类型”列中不包含“%jack%”,因此计数 = 1
我想要的 output 是:
ID | 大的 | 医学 | 类型 | 数数 |
---|---|---|---|---|
1001 | X | 1 | 木材杰克 | 1 |
1002 | 是的 | 2 | 杰克刀 | 0 |
1001 | z | 3 | 彼得潘 | 1 |
1005 | 一个 | 4 | 摇滚明星 | 2 |
1005 | b | 5 | 纸手 | 2 |
1007 | c | 6 | 到月球 | 1 |
您可以使用 window function 来做到这一点:
select * , sum(case when Type NOT LIKE '%jack%' then 1 end) over (partition by ID) as count
from table
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.