Oracle SQL
の各グループの最新のエントリを抽出するこのチュートリアルは、一般的なデータベースタスクを示しています。タイムスタンプに基づいて各グループの最新のレコードを取得します。 例として、ID、タイムスタンプ、および数量を含むテーブルを使用します。
チャレンジ:
ID、タイムスタンプ( "日付")、数量( "数量)列のあるテーブルが与えられた場合、すべての一意のIDに対して最新の数量(およびそれに関連するタイムスタンプ)をどのように効率的に選択しますか?
解決:
これは、次のアプローチを使用して達成できます。
select x.id、x。 "date"、x.quantity から ( 選択します ID、 "日付"、 rnkとしてrank()over( "date" descによるID注文によるパーティション)、 量 QTYSから )x ここで、x.rnk = 1;
SELECT x.id, x."date", x.quantity
FROM (
SELECT
id,
"date",
RANK() OVER (PARTITION BY id ORDER BY "date" DESC) AS rnk,
quantity
FROM qtys
) x
WHERE x.rnk = 1;
クエリの拡張:この基本的なクエリは、より複雑なニーズを満たすために適応できます:
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3