Postgresql 我怎样才能过滤所有打开的店主?
这是我的桌子。我想根据“日期\登记簿”字段的最后一个登记簿了解店主是开还是关。例如,shopkeeper=79最后一个状态为Close,则不会在查询中返回该状态 比如: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
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'
我想得到->然后去做!从这里开始: