当前位置: 首页 > 面试题库 >

在hstore中按任意属性的值排序

丘畅
2023-03-14
问题内容

我有这样的记录:

id, hstore_col
1,  {a: 1, b: 2}
2,  {c: 3, d: 4}
3,  {e: 1, f: 5}

如何在hstore中按 任何 属性的最大值/最小值对它们进行排序?

结果应如下所示(按最低顺序排列):

id, hstore_col
1,  {a: 1, b: 2}
3,  {e: 1, f: 5}
2,  {c: 3, d: 4}

我知道,我只能按如下特定属性来排序它们:my_table.hstore_fields -> 'a',但不适用于我的问题。


问题答案:

使用转换为数组avals并将结果数组从文本转换为整数。然后对数组进行排序,并按排序后的数组的第一个元素对结果进行排序。

select * from mytable
order by (sort(avals(attributes)::int[]))[1]

http://sqlfiddle.com/#!15/84f31/5



 类似资料:
  • 问题内容: 哦,那些带有lambda的棘手的Java 8流。它们非常强大,但是复杂性要花一点点头才能将其包起来。 假设我有一个带有属性的类型。假设我有一个与名称相关联的用户的地图(例如,登录用户名)。让我们进一步说一下,我有一个比较器的实例来对用户名进行排序(也许使用花哨的排序器等)。 那么,如何获取地图中按用户名排序的用户列表?我可以忽略地图键并执行以下操作: 但是我不得不提取名称才能使用的那一

  • 哦,那些狡猾的Java8条带有lambdas的溪流。它们非常强大,但是复杂的东西需要一点时间来包裹它。 假设我有一个类型,其属性为。假设我有这些用户的地图 ?

  • 问题内容: 我正在尝试按属性对一些数据进行排序。这是我tought应该可以工作的示例,但事实并非如此。 HTML部分: JS部分: 结果: A-> AData B-> BData C-> C数据 …恕我直言,应如下所示: C-> C数据 B-> BData A-> AData 我是否错过了某些东西(可以在这里进行JSFiddle的实验)? 问题答案: AngularJS的orderBy过滤器仅支持

  • 问题内容: 在redis中,我将对象存储在一个排序集中。在我的解决方案中,能够按日期运行范围内的查询很重要,因此我存储的项目的得分为每个项目的时间戳,例如: 但是,在其他情况下,我需要根据其ID在集合中找到一个项目。我知道我不能像对待nosql db那样仅查询此数据结构,但是我尝试使用,这是行不通的。 它返回;“空列表或集” 也许我需要序列化不同吗?我已经使用Json.Net进行了序列化。 我如何

  • 问题内容: 如果我有一个JavaScript对象,例如: 有没有一种方法可以基于值对属性进行排序?这样我最终 问题答案: 将它们移动到一个数组,对该数组进行排序,然后将其用于您的目的。这是一个解决方案: 拥有数组后,您可以按自己喜欢的顺序从数组中重建对象,从而完全实现了您打算要做的事情。在我所知道的所有浏览器中都可以使用,但这取决于实现的怪癖,并且可能随时中断。您永远不应假设JavaScript对

  • 问题内容: 我现在只需获取数组的前3个对象并映射它们: 每个都有一个属性(champ.level)。 如何将输出分类到 前三个切片中? 问题答案: 与自定义比较功能一起使用时,首先要进行降序排序: 使用ES6甚至更好: