knex.js - 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'
解决方案
推荐阅读
- reactjs - 使用 react useeffect 挂钩时如何检查对象是否发生变化?
- c# - 在 json 数组中搜索
- r - 选择匹配列单元格序列下方的 n 个单元格
- javascript - JQ 数据表服务器端处理使 2 行搜索框和一个工作
- reactjs - 何时使用 async-storage 以及何时在 react native 中使用 redux
- reactjs - React-Native 导航 - navigation.navigate 不传递路由参数
- jenkins - Jenkins 多分支管道:分支名称过滤不起作用?
- java - 十进制值的循环
- kubernetes - 在 AWS EKS 上扩展 pod 时出现 502 ALB 错误
- firefox - 如果字体大小小于 15 像素,为什么 Firefox 会在画布上下文中舍入字体大小,而不是大于 15 像素?