首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以使用Min-1找到下一个到最低的值吗?

我可以使用Min-1找到下一个到最低的值吗?
EN

Stack Overflow用户
提问于 2014-03-15 02:56:40
回答 1查看 83关注 0票数 0

我有一张桌子

Field1 _ Field2 _ Field3 _

我不关心Field3的分解,所以希望为每个字段设置一条记录:

Field1 _ Field2 _

(因为我不关心第三场比赛)

最后以例如

  • 苹果白1倍100
  • 香蕉-白色- 101 - 400
  • 猕猴桃白402750
  • 香蕉-黑-1-1- 85
  • 苹果黑- 90 - 205
  • 猕猴桃黑210 5504等

所以我想我可以

代码语言:javascript
运行
复制
Create table LOW_HIGH_ALL as (select ID, FIeld1, FIeld2, max(High), min(Low) from LOW_HIGH group by Field1, Field2

如您所见,每个字段1表示字段B字段中不与另一个字段重叠的范围。

问题是有一些“坏数据”,所以有时我最终会:

  • 苹果白1倍100
  • 香蕉-白色-1- 400
  • 猕猴桃白1

也就是糟糕的数据。我不能就这么假设1总是坏的。所以我想,如果我能接近最低的人,我就能得到

  • 苹果-白色-1
  • 香蕉-白-1
  • 猕猴桃-白色-1- 401 -401- 700

并且可以使用' Min -1‘和min之间的区别来计算出当我有坏的min数据时(并且可以使用第二个值来代替),到目前为止,它似乎只是一个坏的min数据。

我已经尝试了Min-1的工作,所以我想知道是否有其他的方法来提取第二个最低的值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-15 03:07:54

第二低是有点痛。但是,您可以在MySQL中使用substring_index()/group_concat()技巧来完成它:

代码语言:javascript
运行
复制
Create table LOW_HIGH_ALL as 
    select ID, FIeld1, FIeld2, max(High), min(Low),
           substring_index(substring_index(group_concat(distinct low order by low asc), ',', 2), ',', -1) as min_2
    from LOW_HIGH
    group by Field1, Field2;

这将"low“值连接在一起,然后从结果字符串中提取第二个值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22418968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档