我需要按日期/时间字段对PostgreSQL表进行排序,例如last_updated.
但是,该字段允许为空或空,我想与空记录last_updated来之前,非空last_updated.
这可能吗?
order by last_updated asc /* and null last_updated records first ?? */
我试图做类似的东西这个,但与额外的复杂性,我需要按公共字段
我有两张桌子,一张用于competition_users(竞争比赛)和另一张桌子(用于competition_times存储他们最快的时间),但在同一张桌子上有许多不同的比赛.
我rank在competition_times表格中创建了一个新列,现在需要为现有用户运行更新以显示他们在竞争中的排名,我正在尝试修改其他SO答案中给出的解决方案但没有成功
表格如下......
competition_users:
competition_user_id, competition_id
competition_times:
competition_time_id,competition_user_id,time_in_seconds,rank
我不确定它是否可以使用GROUP BY?或者如果有另一种方式,到目前为止我正在尝试这样的事情......
UPDATE competition_times
SET    rank = r.rnk
FROM (
    SELECT competition_time_id
         , dense_rank() OVER (ORDER BY time_in_seconds ASC) AS rnk
    FROM competition_times, competition_users
    WHERE competition_times.competition_user_id = competition_users.competition_user_id
    GROUP BY competition_users.competition_id
    ) r
WHERE competition_times.competition_time_id = r.competition_time_id
使用postgreSQL 9
谢谢