这个 sql 算法的性能更好?
better performance for this sql algorithm?
我正在寻找替代 SQL 代码
我的 table 有 4 列:Id, Zip code, timestamp and user value.
行示例:2299898;"40";"2011-03-28 00:45:00+02";1.9
我想为时间等于或早于时间戳的每个邮政编码获取一天的结果集。显然每行的用户数据。
我目前的查询:
SELECT DISTINCT
FIRST_VALUE(timestamp) OVER (
PARTITION BY zipcode, DATE(timestamp)
ORDER BY timestamp DESC
) AS timestamp,
zipcode,
FIRST_VALUE(userdata) OVER (
PARTITION BY zipcode, DATE(timestamp)
ORDER BY timestamp DESC
) AS userdata
您不需要 window 功能:
select distinct on (zipcode, timestamp::date)
timestamp,
zipcode,
userdata
from t
order by zipcode, timestamp::date desc, timestamp desc
我正在寻找替代 SQL 代码
我的 table 有 4 列:Id, Zip code, timestamp and user value.
行示例:2299898;"40";"2011-03-28 00:45:00+02";1.9
我想为时间等于或早于时间戳的每个邮政编码获取一天的结果集。显然每行的用户数据。
我目前的查询:
SELECT DISTINCT
FIRST_VALUE(timestamp) OVER (
PARTITION BY zipcode, DATE(timestamp)
ORDER BY timestamp DESC
) AS timestamp,
zipcode,
FIRST_VALUE(userdata) OVER (
PARTITION BY zipcode, DATE(timestamp)
ORDER BY timestamp DESC
) AS userdata
您不需要 window 功能:
select distinct on (zipcode, timestamp::date)
timestamp,
zipcode,
userdata
from t
order by zipcode, timestamp::date desc, timestamp desc