Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 按返回相同行数的问题分组_Sql_Postgresql_Greatest N Per Group - Fatal编程技术网

Sql 按返回相同行数的问题分组

Sql 按返回相同行数的问题分组,sql,postgresql,greatest-n-per-group,Sql,Postgresql,Greatest N Per Group,我想获取max last_updated_日期的ID/行,但查询返回的行数相同 id | job_number | last_udated_date 1407;"88212";"2015-12-16 00:00:00+05:30" 77;"48439";"2015-12-16 00:00:00+05:30" 1526;"1484924208";"2017-01-21 00:00:00+05:30" 1527;"1484924208";"2017-01

我想获取max last_updated_日期的ID/行,但查询返回的行数相同

    id   |  job_number | last_udated_date
    1407;"88212";"2015-12-16 00:00:00+05:30"
    77;"48439";"2015-12-16 00:00:00+05:30"
    1526;"1484924208";"2017-01-21 00:00:00+05:30"
    1527;"1484924208";"2017-01-21 00:00:00+05:30"
    1528;"1484924208";"2017-01-21 00:00:00+05:30"
    1529;"1484924208";"2017-01-22 07:20:42.586+05:30"
查询应该只返回1407、77、1529,但现在它返回所有值

查询:

select id, last_updated_date 
from brs.events 
where last_updated_date in (select max(last_updated_date) 
                            from brs.events 
                            group by last_updated_date )
您要执行以下操作:

SELECT id,
  last_updated_date
FROM brs.events
WHERE last_updated_date =
  (SELECT MAX(last_updated_date) FROM brs.events
  )
如果您希望根据最新的上次更新日期仅获取一行,则可以使用以下限制:

select id
from brs.events
order by last_update_date desc
limit 1;
更新有关问题的最新更改:

select
    id,
    last_updated_date
from (
    select
        t.*,
        row_number() over (partition by job_number order by last_updated_date desc) rn
    from your_table t
) t where rn = 1;

如果我理解正确,理想的选择是因为它使查询变得非常简单

SELECT DISTINCT ON(表达式[,…])仅保留 给定表达式计算结果相等的每组行


这里,
Distinct on
将计算每个组中的行(
job\u number

如果我只想根据最新的上次更新日期获取这些记录。该表中有1到1529条记录。我想根据最新更新日期获取所有记录,但仅获取一行。获取所有记录,但仅获取一行-没有任何意义。您能澄清一下吗?该表中有1529条记录,但您的查询只返回1条row@sromit你想要它归还什么?1到1528行?请在问题中澄清。表格形式的预期输出会有所帮助。我希望获得所有行,但我不希望在job_number相等的一天内有任何重复记录,基本上,用户可以在不同的时间在一天内创建相同的工号。请澄清为什么这三个工号应该出现在输出中?因为我想获得用户工作过的所有最新工号,所以有3个不同的工号用户在3天内工作过。请在我的答案中查看更新。如果我想获得select*,这将不起作用,因为还有其他列我也需要数据。我根据您的问题编写了此解决方案,您在编写问题时应该非常清楚,以获得更好的答案Thanx@Wingedparter..当然会记住..但现在我希望所有作业编号和最新lpd上的所有行都不同
select distinct on (job_no) id
      ,job_no
      ,max(lpd)
from evnts
group by job_no,id