如何解决如何解决错误 cubejs 'From members are not found ... 请确保连接字段引用维度而不是列'
我有错误:在 [] 中找不到来自成员的加入 {"join":{"relationship":"belongsTo"},"from":"Conversations","to" :"Advisers","originalFrom":"Conversations","originalTo":"Advisers"}。请确保连接字段引用维度而不是列。休闲模式与休闲模式。
cube(`Conversations`,{
sql: `
select
appUUID,roomId,sessionId,count(1) Messages,min(channel) channel,min(createdAt) FirstMessage,max(createdAt) LastMessage,max(case when type='status' and status='ended' then \`payload.selectedOption\` else '' end) EndReason,max(
case
when type='status' and status='ended' and sender='bot' then 'Robot'
when type='status' and status='ended' and sender <> 'bot' then
(
\`advisorId\`
)
else ''
end
) EndAdvisor,max(userGuest) userGuest,max(userGuestLocal) userGuestLocal
from
\`keybe-conversations\`.messages
where
${Security_CONTEXT.appUUID.filter(
'appUUID'
)}
group by
appUUID,sessionId
`,joins:{
Advisers: {
relationship: 'belongsTo',sql: ` concat(${CUBE}.\`appUUID\`,'-',${CUBE}.\`EndAdvisor\`) = concat(${Advisers}.\`appUUID\`,${Advisers}.\`userId\`)`
}
},measures: {
count: {
type: `count`,drillMembers: [userGuest,userGuestLocal,channel]
},totalMessages: {
type: `sum`,sql: `Messages`,title: 'Total Messages'
},ended: {
type: `count`,filters: [
{
sql: `${CUBE}.EndReason <> ''`
}
],notEnded: {
type: `count`,filters: [
{
sql: `${CUBE}.EndReason = ''`
}
],channel]
}
},dimensions: {
pk: {
sql: `concat(${CUBE}.\`appUUID\`,${CUBE}.\`roomId\`,${CUBE}.\`sessionId\`)`,type: `string`,primaryKey: true
},channel: {
sql: `channel`,type: `string`
},appUUID: {
sql: `${CUBE}.\`appUUID\``,title: `AppUUID`
},roomId: {
sql: `${CUBE}.\`roomId\``,title: `RoomId`
},sessionId: {
sql: `${CUBE}.\`sessionId\``,title: `Session Id`
},endReason: {
sql: `${CUBE}.\`EndReason\``,title: `End Reason`
},endAdvisor: {
sql: `${CUBE}.\`EndAdvisor\``,title: `End Advisor`
},firstMessage: {
sql: `${CUBE}.\`FirstMessage\``,type: `time`,title: `First Message`
},lastMessage: {
sql: `DATE_FORMAT(${CUBE}.\`LastMessage\`,'%Y-%m-%d %H:%m:%s')`,title: `Last Message`
},initialMessage: {
sql: `DATE_FORMAT(${CUBE}.\`FirstMessage\`,title: `Initial Message`
},userGuest: {
sql: `${CUBE}.\`userGuest\``,title: `UserGuest`
},userGuestLocal: {
sql: `${CUBE}.\`userGuestLocal\``,title: `UserGuestLocal`
},takenTime: {
sql: `TIMESTAMPDIFF(HOUR,DATE_FORMAT(${CUBE}.\`FirstMessage\`,'%Y-%m-%d %H:%m:%s'),DATE_FORMAT(${CUBE}.\`LastMessage\`,'%Y-%m-%d %H:%m:%s'))`,type: 'string',title: 'TakenTime'
}
},preAggregations: {
// main: {
// type: `originalsql`,// external: true
// },ConversationsRollup: {
type: `rollup`,measureReferences: [Conversations.count],dimensionReferences: [Conversations.appUUID,Conversations.channel,Conversations.endAdvisor,Conversations.firstMessage,Conversations.lastMessage,Conversations.userGuest,Conversations.userGuestLocal],external: true
},joinedWithAdvisersRollup: {
type: `rollupJoin`,dimensionReferences: [Advisers.name],rollupReferences: [Advisers.AdvisersRollup,Conversations.ConversationsRollup],external: true,}
},segments: {
humanAdvisor: {
sql: `${CUBE}.EndAdvisor <> 'Robot' AND ${CUBE}.EndAdvisor <> ''`,},robotAdvisor: {
sql: `${CUBE}.EndAdvisor = "Robot"`,withoutAdvisor: {
sql: `${CUBE}.EndAdvisor = ''`,}
}
})
cube(`Advisers`,{
sql: `
SELECT * FROM \`keybe-conversations\`.advisers where
${Security_CONTEXT.appUUID.filter(
'appUUID'
)}
`,joins: {
Rooms: {
relationship: 'hasMany',sql: `concat(${CUBE}.\`appUUID\`,${CUBE}.\`userId\`) = concat(${Rooms}.\`appUUID\`,${Rooms}.\`advisorId\`)`
},Conversations: {
relationship: 'hasMany',${CUBE}.\`userId\`) = concat(${Conversations}.\`appUUID\`,${Conversations}.\`EndAdvisor\`)`
}
},drillMembers: [name,email,userId]
}
},${CUBE}.\`userId\`)`,appUUID: {
sql:`${CUBE}.\`appUUID\``,status: {
sql: `${CUBE}.\`status\``,title: `Status`
},name: {
sql:`${CUBE}.\`name\``,title: `Name`
},email: {
sql:`${CUBE}.\`email\``,title: `Email`
},phone: {
sql:`concat(COALESCE(${CUBE}.\`countryCode\`,'NO NULO-'),${CUBE}.\`phone\`)`,title: `Phone`
},userId: {
sql:`${CUBE}.\`userId\``,shown: false
}
},preAggregations: {
AdvisersRollup: {
type: 'rollup',measureReferences:[Advisers.count],dimensionReferences:[Advisers.status,Advisers.name,Advisers.email,Advisers.phone,Advisers.appUUID],external: true
}
}
})
先谢谢你。
解决方法
您能否尝试将 Conversation
多维数据集中的联接更新为如下所示:
joins:{
Advisers: {
relationship: 'belongsTo',sql: ` concat(${CUBE.appUUID},'-',${CUBE.endAdvisor}) = concat(${Advisers.appUUID},${Advisers.userId})`
}
},
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。