【问题标题】:Need assist with a query that looks at 1 table but might need to subquery or join需要帮助查看 1 个表但可能需要子查询或连接的查询
【发布时间】:2019-03-12 04:12:00
【问题描述】:

我的表格结构如下:

AssignID, type, PosID
1a,       e,     a
1b,      et,     a
2a,       e,     b
2b,      et,     b

我希望我的结果如下所示:

AssignID, type, PosID, NewColumn
1a,        e,     a,      1b
2a,        e,     b,      2b

提供一些额外的细节。我的数据类似于第一个数据集。基本上 PosID 会重复两次,一次带有“e”记录,另一次带有“et”记录。 'Et' 是'E' 的孩子,所以我想消除多余的行并将我的结果显示为每个'PosID' 一行。因此使用“Et”记录的“AssignID”创建一个新列。希望这是有道理的。

【问题讨论】:

  • 你的意思是说type会有一个重复?

标签: sql join subquery


【解决方案1】:

以下查询将生成您的预期输出:

SELECT
    MIN(AssignID) AS AssignID,
    MIN(type) AS type,
    PosID,
    MAX(AssignID) AS ExtraColumn
FROM yourTable
GROUP BY
    PosID;

但是,尚不清楚上述逻辑是否适用于您的所有实际数据。您应该详细说明为什么e 显示为保留的type,而不是et

Demo

【讨论】:

  • 感谢蒂姆的回复,我正在寻找的不是安静。我已经修改了我的原始帖子,我认为现在可以更好地解释它。 lk你的想法。谢谢
  • 那我不明白你的要求。如果你想到达这里,那么你应该编辑你的问题并更好地解释逻辑。
【解决方案2】:

这是你想要的吗?

select AssignID, type, PosID, replace(AssignID, 'a', 'b') as new_column
from t
where type = 'e';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多