如何使用不同的字段获取查询输出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用不同的字段获取查询输出相关的知识,希望对你有一定的参考价值。
source | destination | totalkms >
-----------+-------------+----------
chennai | bangalore | 400
bangalore | chennai | 400
mumbai | delhi | 1400
delhi | mumbai | 1400
delhi | patna | 800
预期产量是
source | destination | totalkms
---------+-------------+----------
chennai | bangalore | 400
mumbai | delhi | 1400
delhi | patna | 800
答案
你可以使用not exists
和union all
:
select t.*
from t
where t.source < t.destination
union all
select t.*
from t
where t.source > t.destination and
not exists (select 1
from t t2
where t2.source = t.destination and t2.destination = t.source and
t2.totalkms = t.totalkms
);
另一答案
您可以使用group by子句尝试least()和greatest()方法,如下所示。
select least(source, destination),greatest(source, destination),max(totalkms) from test_travel group by least(source, destination),greatest(source, destination);
以上是关于如何使用不同的字段获取查询输出的主要内容,如果未能解决你的问题,请参考以下文章
如何在elasticsearch中为给定查询按字段获取不同的结果?
从 2 个不同片段的 sqlite 中的 2 个表中获取信息