ほとんどのテーブルに、その行のデータがいつ表現されるかを示す「valid_time」列と、推定がいつ行われたかを示す「analysis_time」列があるポストグルDBがあります(これは同じかそれ以降の可能性があります)計測の場合は有効時間よりも早い時間、予報の場合はそれより早い時間)。通常、有効な時間ごとに複数の分析時間があり、さまざまな測定 (少し待つと、特定の時間により多くのデータが利用可能になるため、分析は向上しますが、測定は迅速ではなくなります) と、さまざまなリード タイムの予測に対応します。
SQLalchemy を使用して Python でこの DB にアクセスしています。
私がやりたいことは、指定された列の最新の N 個の一意の日時を持つすべての行を引き出すことができることです。たとえば、最新の 3 つの一意の有効な時間が必要な場合がありますが、これらの 3 つの有効な時間のそれぞれに複数の分析時間が存在するため、これは通常 3 行以上になります。
リレーショナル データベースは初めてです。ある意味で、この質問には 2 つの部分があります。これを生の SQL でどのように達成し、それを SQLalchemy ORM に変換する方法を教えてください。