如何查询以获得以下独特的结果?

时间:2017-01-16 14:36:42

标签: mysql sql

我的查询是: -

SELECT DISTINCT _to, _from FROM message;

它输出为: -

 _to  _from  time

sam     jeet  16/01/17 00:18:27.7780
jeet     sam  16/01/17 00:18:26.7780
bro      sis  16/01/17 00:18:20.7780
sis       bro 16/01/17 00:18:23.7780
abc      def  16/01/17 00:18:21.7780

它给出了正确的结果,但它没有给出我想要的东西。  我需要输出如下:

sam  jeet 16/01/17 00:18:27.7780
sis  bro  16/01/17 00:18:23.7780
abc   def 16/01/17 00:18:21.7780

那是jeet,sam应该和sam,jeet一样,所以不应该重复。ss,兄弟。 所选择的一个应该有最新的时间

1 个答案:

答案 0 :(得分:4)

试试这个:

SELECT CASE 
            WHEN _to < _from THEN _from
            ELSE _to
         END,
         CASE 
            WHEN _to >= _from THEN _from
            ELSE _to
         END
FROM message
GROUP BY CASE 
            WHEN _to < _from THEN _from
            ELSE _to
         END,
         CASE 
            WHEN _to >= _from THEN _from
            ELSE _to
         END

Demo here

如果您使用MySQL,查询可以简化为:

SELECT LEAST(_to, _from),
       GREATEST(_to, _from)
FROM message
GROUP BY LEAST(_to, _from),
       GREATEST(_to, _from)
相关问题