我在Azure SQL中有一个名为Report_Table的表.它有一百多根柱子.

我将给出一个有3列的例子,如下所示:

+--------+----------+------+
| job_id | rep_pm   | done |
+--------+----------+------+
|  46    | a002     |    a |
|  47    | a002     |    b |
|  48    | a002     |    c |
|  49    | a003     |    d |
|  50    | a003     |    e |
|  51    | a003     |    f |
|  52    | a004     |    g |
|  53    | a004     |    h |
|  54    | a005     |    i |
|  55    | a006     |    j |
+--------+----------+------+

rep_pm具有重复值.我需要买到最新的rep_pm英镑.

这将取决于第job_id栏.

  • 对于a002,最新的jod_id将是48
  • 对于a003,最新的jod_id将是51
  • 对于a004,最新的jod_id将是53

诸若此类.

我需要最新的job_id英尺S来代替所有的rep_pm英尺S和表中剩余的列.

这就是我try 过的:

select 
    rep_pm, count(*) as cnt,
    row_number() over (partition by rep_pm order by count(*) desc) as seq
from 
    Report_Table 
group by 
    rep_pm

上述查询返回以下输出:

+--------+----------+------+
| rep_pm | cnt      | seq  |
+--------+----------+------+
|  a002  | 3        |    1 |
|  a003  | 3        |    1 |
|  a004  | 2        |    1 |
|  a005  | 1        |    1 |
|  a005  | 1        |    1 |
+--------+----------+------+

我知道我错过了一些重要的东西,非常感谢你的帮助.

推荐答案

你可以试试:-

 select rt.*  
 from Report_Table rt
 join (select rep_pm,max(job_id) as job_id from Report_Table group by rep_pm)x
 on rt.job_id=x.job_id and rt.rep_pm=x.rep_pm

Sql相关问答推荐

使用自动增量ID插入失败(无法将值空插入列ID)

如何将多个 Select 查询从一个表中组合出来

如何更改函数返回的列名?

通过 Select 值的顺序进行排序ClickHouse

为什么在postgres中,横向连接比相关子查询快?

导出部分条形码字符串GS1-128

Pgsql-返回包含多行数据的行

按连续相等值分组排序

两个月之间的WHERE CASE WHEN-ORA-00905:缺少关键字

将时间范围划分为全天和前后剩余小时

Proc SQL Select Distinct SAS

Athena 计算从日期到当前时间戳的每月计数

具有分组条件的不同计数 (DAX)

错误:postgresql 中缺少表评级的 FROM 子句条目

SQL的左连接在多对多关系情况下使用

如何优化仅返回符合条件的三条记录的查询?

如何获取每个组中最近的n条记录并将它们聚合成数组

PostgreSQL - 递归地聚合来自不同列的属性

函数调用作为插入值语句中的参数

Oracle SQL 查询自行运行,但在包装到select count(*) from ()时失败