我有一张看起来像这样的桌子
years type value x y
1 b 3.74637 false true
1 b -0.52816 true false
1 mon1 0 true false
1 mon1 0 false true
1 mon10 0.00413 true false
1 mon10 0.00137 false true
Run Code Online (Sandbox Code Playgroud)
我希望桌子看起来像
years type x y
1 b 3.74637 -0.52816
1 mon1 0 0
1 mon10 0.00413 0.00137
Run Code Online (Sandbox Code Playgroud)
因此我创建了一个请求,我在其中加入表格本身
SELECT
i.years,
i.type,
i.value as b,
j.value as m
from abc as i
inner join abc as j on i.type = j.type AND i.years = j.years
WHERE i.type = j.type AND i.m = j.b
Run Code Online (Sandbox Code Playgroud)
现在我明白了
years type x y
1 b 3.74637 -0.52816
1 b -0.52816 3.74637
1 mon1 0 0
1 mon1 0 0
1 mon10 0.00413 0.00137
1 mon10 0.00137 0.00413
Run Code Online (Sandbox Code Playgroud)
如何摆脱一行的 x 值等于下一行的 y 的双峰
您不需要做任何额外的事情,只需在连接上添加一些额外的约束即可。您真的不想执行子查询,因为会无缘无故地影响性能。
SELECT
i.years,
i.type,
i.value as b,
j.value as m
from abc i
inner join abc j on i.type = j.type and i.x = true and j.y = true;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6488 次 |
| 最近记录: |