sql >> Database teknologi >  >> RDS >> PostgreSQL

Vælg sidste daglige ikke null-værdi med tidszone

Prøv denne:

SELECT
    DISTINCT ON (hive, moment)
    *, DATE_TRUNC('day', instant AT TIME ZONE 'pst') AS moment
FROM dt_weight
ORDER BY hive, moment DESC, instant DESC;

Den bruger DISTINCT ON for kun at beholde den første række for hver kombination af hive og dag. For at sikre, at den første række, vi beholder, også er den seneste, sorterer vi desuden i omvendt kronologisk rækkefølge.




  1. Henter det sidst indsatte ID med udtryk i mysql

  2. Er der nogen forskel mellem DATE_SUB() og at bruge aritmetiske operatorer til beregning af dato og klokkeslæt?

  3. Find duplikerede værdier i MySQL

  4. Opdaterer tom streng til NULL for hele databasen