Superset图表过滤时出现session_id列引用歧义问题求助
解决Superset中关联表后session_id筛选歧义问题
问题根源
用SELECT *关联两张都包含session_id的表时,结果集中会出现两个同名的session_id列,导致Superset筛选时无法区分;同时Superset生成的伪列名(如session_id__1)仅为前端展示用,底层查询并不识别该名称。
解决方案
方案1:修改数据集SQL,明确指定列并去重
避免使用SELECT *,手动列出需要的列,对重复的session_id设置别名,或仅保留其中一个(因关联条件保证两张表的session_id值相等)。示例SQL:
SELECT perf.session_id, -- 若需区分两张表的session_id,可设置别名:perf.session_id AS perf_session_id, session.session_id AS session_session_id session.start_time, session.end_time, perf.metric_value, perf.metric_type FROM t1.performance AS perf INNER JOIN t1.test_session AS session ON perf.session_id = session.session_id
修改后刷新数据集,筛选时直接使用指定的列名或别名即可。
方案2:筛选时使用带表别名的列名
若暂时不想修改数据集SQL,在图表筛选条件中直接指定带表别名的列名(如perf.session_id或session.session_id),而非仅输入session_id。Superset会将该带别名的列名传递到底层查询,避免歧义。
内容的提问来源于stack exchange,提问作者Prakhar Sahu
相关产品推荐
相关产品推荐

