【问题标题】:SQL Server : Select distinct max(date) groupSQL Server:选择不同的最大(日期)组
【发布时间】:2012-09-26 14:49:06
【问题描述】:

这是我的桌子offs:

date ----------   oid ------   head -----  cnt

2012-1-9 -----13      --------  10   -----------1
2012-1-11 --- 13      --------  6  -----------  2
2012-1-22 --- 13      --------  10   -----------3
2012-1-22 --- 11      --------  10   -----------4

我需要一个 select 函数,其结果是 max(date) 来自 oid 和不同的头部,就像这样:

2012-1-11 --- 13      --------  6  -----------  2
2012-1-22 --- 13      --------  10   -----------3
2012-1-22 --- 11      --------  10   -----------4

【问题讨论】:

    标签: sql database select distinct


    【解决方案1】:

    这个查询怎么样:

    SELECT a.*, b.cnt from(
    SELECT MAX(Date) AS Date, oid, head
    from offs group by oid, head
    )a inner join offs b on a.Date=b.Date and a.oid=b.oid and a.head=b.head
    

    【讨论】:

    • 对不起,这是我的错,我的 cnt 是不同的。如果我“分组”,我将获得所有列。
    • 请试试这个SELECT a.*, b.cnt from( SELECT MAX(Date) AS Date, oid, head from offs group by oid, head )a inner join offs b on a.Date=b.Date
    • 你也应该加入 OID 和 head
    • 列名“日期”无效。在这种情况下,第 4 行“a.Date”
    • 好的,我加入了 oid 但没有得到我预期的结果
    猜你喜欢
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    相关资源
    最近更新 更多