当前位置: 首页 > 知识库问答 >
问题:

带仅显示最大值条件的SQL联接表

田柏
2023-03-14

我需要在UniqueID上加入tableA和tableB,但是我只想加入tableA中具有某些状态限制的最新日期(不是在S中)。我知道我需要使用Max函数,但我不能让它工作。我如何得到下面的结果表?

我想的是:

Select
    tableA.UniqueID,
    MAX(tableA.Date),
    tableA.Status,
    tableB.Col1
    From tableA 
Inner join tableB on (tableB.UniqueID = tableA.UniqueID and tableA.Status = 'A')`

tableA:

| UniqueID | Date                 | Status |
| -------- | -------------------  |--------|
| 123      | 2015-07-05  00:00:00 | S      |
| 123      | 2015-07-06  00:00:00 | S      |
| 123      | 2015-07-07  00:00:00 | A      |

and tableB:

| UniqueID | Col1 |
| -------- | -    |
| 123      | X    |
| 125      | Y    |
| 126      | Z    |

Result table:

| UniqueID | Date                 | Status | Col1|
| -------- | -------------------  |--------|---- |
| 123      | 2015-07-07  00:00:00 | A      | X   |

共有1个答案

岳时铭
2023-03-14

这是方法之一-

  select
    t_a.*, t_b.*
  from 
    table_b t_b 
    join 
    (
      select 
        uniqueid, date, status,
        rank() over (partition by uniqueid order by date desc ) rank_
      from
        table_a
    ) t_a on t_b.uniqueid = t_a.uniqueid 
  where
    t_a.rank_ = 1
  ;

小提琴url:(https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=06660177b6c116a811218863ce428985)

 类似资料:
  • 问题内容: 这是我正在谈论的简化示例: 为了这个问题,假设每个学生至少记录了一个考试结果。 您将如何选择每个学生以及他们的最高分数? 编辑 :…和该记录中的其他字段? 预期产量: 欢迎使用所有类型的DBMS进行回答。 问题答案: 回答已编辑的问题(即也获取关联的列)。 在Sql Server 2005+中,最好的方法是将等级/窗口函数与CTE结合使用,如下所示: 对于符合ANSI-SQL的解决方案

  • 我想在最高时间为每个[组]检索一个结果。 当前代码的结果: 结果应该只有两条记录(csv):

  • 我正在尝试用多个过滤器获取帖子,我的数据库如下所示, 我尝试了上面的SQL,它可以工作,但问题是,如果我嵌套了两个以上的或条件和不同数量的过滤器,我会得到错误的结果。

  • 问题内容: 问题:我有一个SQL函数,该函数返回文件列表 现在,我应该使用联合将其他列表加入该列表,但前提是用户是admin。 那可能吗?就像是: 问题答案:

  • 问题内容: 当表较小时,此查询具有合理的时间。我正在尝试确定什么是瓶颈,但是我不确定如何分析结果。 我已经尝试了INNER JOIN’ing和表的方法以及执行INNER SELECT的方法。两者有相同的时间。 这是EXPLAIN的链接:https : //explain.depesz.com/s/9lhr Postgres版本: x86_64-unknown-linux-gnu上的PostgreS

  • 我一直在寻找这个问题的答案,但运气不佳,所以希望有人能帮助我! 我正在处理周期性数据,我试图找到两个波峰和两个波谷的相关值——这不一定等同于最大/最小和第二个最大/最小值,而是最大/最小和第二个最大/最小值,条件是该值大于/小于前面和后面的值。 这是一个循环的例子 我有 1000 个周期,所以我在 dplyr 中使用group_by对周期进行分组,然后希望在组中应用条件最大值/最小值参数。 我很感