Couchbase N1QL 子选择结合 GROUP BY

拉苏皮拉米

我有以下航班报价数据结构:

{
  "offerIdentifier": "123",
  "flyFrom": "HAM",
  "flyTo": "LGW",
  "provider": "LH",
  "price": 207,
  "bookingUrl": "https://example.com/",
  "flightCombinationIdentifier": "HAM-LGW-201791570-20179171835"
}

flightCombinationIdentifier属性的值可以在上会出现多重优惠。

现在我想分组flightCombinationIdentifier并找到此组合可用的最低价格,理想情况下应该会产生这样的结构:

{
  "offerIdentifier": "456",
  "flightCombinationIdentifier": "HAM-LGW-201791570-20179171835",
  "offer": [
    {
      "bookingUrl": "http://example.com/",
      "price": 97,
      "provider": "LH"
    }
  ]
}

所以我想出了以下 N1QL 查询:

select b.flightCombinationIdentifier,
    (
        select b1.price, b1.provider, b1.bookingUrl from bucket b1
        use keys b.offerIdentifier
        where b1.flightCombinationIdentifier = b.flightCombinationIdentifier
        order by b1.price asc
        limit 1
    ) as offer

from bucket b
where b.flyFrom = 'HAM' and b.flyTo = 'LGW'
group by b.flightCombinationIdentifier

不幸的是,它因以下错误而死:

[
  {
    "code": 4210,
    "msg": "Expression must be a group key or aggregate: (select (`b1`.`price`), (`b1`.`provider`), (`b1`.`bookingUrl`) from `bucket` as `b1` use keys (`b`.`offerIdentifier`) where ((`b1`.`flightCombinationIdentifier`) = (`b`.`flightCombinationIdentifier`)))  order by (`b1`.`price`) limit 1) as `offer`",
    "query_from_user": "select b.flightCombinationIdentifier,\n    (\n        select b1.price, b1.provider, b1.bookingUrl from bucket b1\n        use keys b.offerIdentifier\n        where b1.flightCombinationIdentifier = b.flightCombinationIdentifier\n        order by b1.price asc\n        limit 1\n    ) as offer\n    \nfrom bucket w\nwhere b.flyFrom = 'HAM' and b.flyTo = 'LGW'\ngroup by b.flightCombinationIdentifier"
  }
]

将子查询的结果放入结果对象的正确方法是什么?

对决
SELECT flightCombinationIdentifier, MIN([price, {bookingUrl,price,provider}])[1] AS offer
FROM bucket WHERE flyFrom = 'HAM' AND flyTo = 'LGW'
GROUP BY flightCombinationIdentifier;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带命名参数的 Couchbase N1QL 基本选择

来自分类Dev

在子文档中,couchbase N1QL分组依据

来自分类Dev

Couchbase N1QL:GROUP BY CASE子句不起作用

来自分类Dev

使用N1QL升级到Couchbase中的子文档

来自分类Dev

Couchbase n1ql匹配任何子文档属性值

来自分类Dev

Couchbase N1QL连接查询

来自分类Dev

Couchbase N1QL查询确实很慢

来自分类Dev

Couchbase N1QL:嵌套文档的更新

来自分类Dev

使用N1QL在Couchbase中获取最新修订

来自分类Dev

使用N1QL访问Couchbase中的内部元素

来自分类Dev

如何从Powershell运行Couchbase N1QL命令

来自分类Dev

十亿个文档的Couchbase N1QL索引

来自分类Dev

从Xampp中的Couchbase N1QL查询开始

来自分类Dev

Couchbase参数化的N1QL查询IN语句

来自分类Dev

Couchbase N1QL 想要返回项目并计数

来自分类Dev

N1ql Couchbase:如何使用 N1qlQueryResult 获取孩子?

来自分类Dev

在Couchbase或N1QL中,如何检查数组中的值是否匹配

来自分类Dev

使用node.js启用Couchbase N1QL引擎

来自分类Dev

Couchbase N1QL的select语句,在PHP中具有命名参数

来自分类Dev

在Couchbase服务器中使用N1QL时出错

来自分类Dev

Couchbase-我什么时候应该使用N1QL vs Views?

来自分类Dev

Couchbase N1QL:检索没有特定字段的文档

来自分类Dev

Couchbase的Java SDK:N1QL查询包括文档ID

来自分类Dev

couchbase n1ql更新在更新时给出错误3000

来自分类Dev

Couchbase N1QL查询-包括外部文档作为父文档

来自分类Dev

为什么在Couchbase N1QL查询中语法错误-为0?

来自分类Dev

在N1Ql Couchbase查询中将相似的键值分组到数组

来自分类Dev

Couchbase指标排序计数始终为零-N1QL + .NET SDK

来自分类Dev

我们可以在Couchbase的外部UDF中执行N1QL查询吗?

Related 相关文章

热门标签

归档