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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
Postgresql 我怎样才能过滤所有打开的店主?_Postgresql - Fatal编程技术网

Postgresql 我怎样才能过滤所有打开的店主?

Postgresql 我怎样才能过滤所有打开的店主?,postgresql,Postgresql,这是我的桌子。我想根据“日期\登记簿”字段的最后一个登记簿了解店主是开还是关。例如,shopkeeper=79最后一个状态为Close,则不会在查询中返回该状态 比如: SELECT distinct on(shopkeeper_id) shopkeeper_id, state, date_register FROM shopkeepers_state WHERE state = 'Open' ORDER BY shopkeeper_id, date_re

这是我的桌子。我想根据“日期\登记簿”字段的最后一个登记簿了解店主是开还是关。例如,shopkeeper=79最后一个状态为Close,则不会在查询中返回该状态

比如:

SELECT 
    distinct on(shopkeeper_id) shopkeeper_id, state, date_register
FROM  
   shopkeepers_state
WHERE 
    state = 'Open'
ORDER BY 
    shopkeeper_id, date_register DESC;

SELECT *, rank() OVER (PARTITION BY shopkeeper_id ORDER BY date_register DESC)
FROM shopkeepers_state 
这将为您提供一个具有排名计数的表,以便每个店主id的排名1指向最近的条目。 以此为基础,应用过滤器:

SELECT * FROM
(SELECT *, rank() OVER (PARTITION BY shopkeeper_id ORDER BY date_register DESC)
    FROM shopkeepers_state) AS ps
WHERE ps.rank = 1
AND ps.state = 'Open'

我想得到->然后去做!从这里开始: