如何使用不同的字段获取查询输出

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 existsunion 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中为给定查询按字段获取不同的结果?

如何在 graphQL 片段中定义可选字段以进行查询

如何重用graphql查询中的字段

从 2 个不同片段的 sqlite 中的 2 个表中获取信息

Solr Highlighting:如何为同一字段请求多个片段长度?

从片段中获取输入数据