首页 > 解决方案 > MemSQL Distributed 不支持“重新调整单例选择”

问题描述

一切都可以在原始查询中找到,但是当用 knex 翻译时,它会抛出错误。

MemSQL Distributed 不支持重新洗牌单例选择。

const finalQuery = knex
.select('*')
.from('tpx.capacity_planning_weekly_hsd_consumption as t1')
.leftJoin(
  knex('tpx.capacity_planning_weekly_hsd_consumption as hsd2')
    .sum('gbs_in', { as: 'gbsIn' })
    .select('hostname', 'mac_domain')
    .where('hostname', 'acr01.49thst.pa.panjde')
    .andWhere('mac_domain', '5')
    .andWhere('hsd2.week_ending', '2020-07-18')
    .andWhere('hsd2.node_leg', 'FN842')
    .as('t2'),
  function() {
    this.on('t1.mac_domain', '=', 't2.mac_domain')
    this.on('t1.hostname', '=', 't2.hostname')
  }
)
.where('t1.hostname', 'acr01.49thst.pa.panjde')
.andWhere('t1.mac_domain', '5')
.andWhere('t1.week_ending', '2020-07-18')
.toSQL()

memsq 中的来源查询

SELECT SUM(gbs_in) as totalConsumption,
hsdPart.gbsIn as nodeConsumption,
ROUND(hsdPart.gbsIn / SUM(gbs_in),2) as ConsumptionPercentage
FROM
capacity_planning_weekly_hsd_consumption as hsd
JOIN
(select
SUM(gbs_in ) as gbsIn,
hsd2.hostname,
hsd2.mac_domain
FROM
capacity_planning_weekly_hsd_consumption hsd2
WHERE hsd2.hostname = "acr01.49thst.pa.panjde"
AND hsd2.mac_domain = '5'
AND hsd2.week_ending = '20200718'
AND hsd2.node_leg = 'FN842') as hsdPart
on hsd.mac_domain = hsdPart.mac_domain
and hsd.hostname = hsdPart.hostname
WHERE hsd.hostname = "acr01.49thst.pa.panjde"
AND hsd.mac_domain = '5'
AND hsd.week_ending = '20200718'

标签: knex.jssinglestore

解决方案


推荐阅读