首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL如何按两列分组

SQL如何按两列分组
EN

Stack Overflow用户
提问于 2015-03-03 16:49:13
回答 3查看 2.7K关注 0票数 3

贝娄是一个例子表。

代码语言:javascript
复制
ID   FROM       TO         DATE  
1    Number1    Number2    somedate
2    Number2    Number1    somedate
3    Number2    Number1    somedate
4    Number3    Number1    somedate
5    Number3    Number2    somedate

预期结果是为每一对唯一的往来列获得1行。

如果由ID命令,示例结果

代码语言:javascript
复制
(1,Number1,Number2)
(4,Number3,Number1)
(5,Number3,Number2)

好的,我已经找到了如何用下面的查询来完成这个任务。

代码语言:javascript
复制
SELECT * FROM table GROUP BY LEAST(to,from), GREATEST(to,from)

然而,我不能得到每一对独特的最新记录。

我尝试过使用order by ID desc,但它返回唯一对的第一个找到的行。

EN

Stack Overflow用户

回答已采纳

发布于 2015-03-05 23:14:52

SQL小提琴不起作用是因为某些原因,因此,同时,您将需要帮助我来帮助您。

假设以下语句有效

代码语言:javascript
复制
SELECT 
    LEAST(to,from) as LowVal, 
    GREATEST(to,from) as HighVal, 
    MAX(date) as MaxDate
FROM table 
GROUP BY LEAST(to,from), GREATEST(to,from)

那你就可以加入

代码语言:javascript
复制
select t.*
from 
    table t
    inner join 
        (SELECT 
            LEAST(to,from) as LowVal, 
            GREATEST(to,from) as HighVal, 
            MAX(date) as MaxDate
        FROM table 
        GROUP BY LEAST(to,from), GREATEST(to,from)
        ) v
        on t.date = v.MaxDate
        and (t.From = v.LowVal or t.From = v.HighVal)
        and (t.To = v.LowVal or t.To= v.HighVal)
票数 5
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28837339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档