【发布时间】:2019-11-20 17:44:12
【问题描述】:
我在 LMS 平台上为练习评分时遇到问题。
我们有两个查询:
select
distinct c.city_name,'city' obj_type
from
shipping.city c
union all
select
distinct c.state,'state' obj_type
from
shipping.city c
union all
select
distinct d.first_name,'driver' obj_type
from
shipping.driver d
union all
select
distinct t.Make,'truck' obj_type
from
shipping.truck t
order by 1 desc
还有这个:
select
c.city_name,'city' obj_type
from
shipping.city c
union
select
c.state,'state' obj_type
from
shipping.city c
union
select
d.first_name,'driver' obj_type
from
shipping.driver d
union
select
t.Make,'truck' obj_type
from
shipping.truck t
order by 1 desc
两者都让我得到相同的结果,但第二个不在平台上评分。同时,我在 Metabase 中使用 except 检查结果,它告诉我“没有结果!” (空)
平台如何运作:
它将 2 个查询发送到基础并检查学生和参考响应之间的差异。
我认为在 Metabase 中,使用“union”和“union all”可能会出现参差不齐的数据视图,但与 except 比较一无所获。
更新:我解决了这个问题。两个查询中有不同的排序;平台也对其进行了检查,并且查询不同。
【问题讨论】:
-
是的,我明白了。我不明白,为什么具有相同结果的两个查询之一不能在 platfrom 正确评分。
-
检查结果使用
EXCEPT ALL而不是EXCEPT -
哦!我不知道 nulls 和 exept all,谢谢!我会试试的。
-
正如我在回答中所建议的那样,我认为您的问题是您在某些列中具有相同的值(例如两个具有相同名称的驱动程序..),因此结果集 ARE 不同,但您看不出有什么不同,因为您使用的是
EXCEPT而不是EXCEPT ALL -
@MtwStark : 在查询部分之间不能有重复,因为 {city,state,driver,truck} 文字总是不同的。
标签: sql postgresql metabase