【问题标题】:Find the highest completed stage找到最高完成的阶段
【发布时间】:2016-09-22 04:50:13
【问题描述】:

我有上面列出的阶段及其顺序和平均完成的数据。我想获得一个没有未完成阶段的阶段。例如,从上述数据来看,完成的最高阶段是 STAGEID -12,因为 STAGEID - 14 不是 100% 完成,这使得超出它的阶段也不被视为已完成。如果所有阶段都 100% 完成,则获得已完成的最高阶段。关于如何查询它的任何想法都会非常有帮助。

【问题讨论】:

标签: sql group-by


【解决方案1】:
select MAX(STAGEID)
from [Your-table]
where average=100;

【讨论】:

  • 您好 Jibin,StageID 是独一无二的,我正在寻找没有不完整阶段的 stageid。如果我只得到 100% 完成的阶段,我怎么知道哪个阶段没有不完整的阶段。我总是会选择顺序最高的阶段结束,它可能不是正确的。
  • @srikanth964 我已经更新了我的答案。为了更好的解决方案,您需要发布您的表结构和示例数据。
  • @srikanth964,我能知道您对该表数据的预期结果是什么吗??
【解决方案2】:

假设表名是“stages”:

select min(s.stageid) 
    from stages s1 
       where 1 = (select count(*) 
                      from stages s2 
                         where s1.stageid <s2.stageid and s2.average <> 100 and s1.average=100 and s2.stageorder = s.stageorder+1);

【讨论】:

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