ホームページ > データベース > mysql チュートリアル > 一意のセンサー ID ごとに最新のセンサー データを効率的に取得するにはどうすればよいですか?

一意のセンサー ID ごとに最新のセンサー データを効率的に取得するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-23 15:33:11
オリジナル
882 人が閲覧しました

How to Efficiently Retrieve the Most Recent Sensor Data for Each Unique Sensor ID?

各キー値の最近のタイムスタンプを持つ行の取得

センサー データを含むテーブルでは、最新の行を選択する必要があります。一意のセンサー ID ごとに。この課題は、目的のクエリがグループ化が指定されていないためにエラーを返す場合に発生します。

この問題を解決するには、2 つの効果的なアプローチがあります。

アプローチ 1: ネストされたクエリ

このメソッドは、ネストされたクエリを利用して各センサーの最大タイムスタンプを特定しますID:

SELECT sensorID, timestamp, sensorField1, sensorField2 
FROM sensorTable s1
WHERE timestamp = (SELECT MAX(timestamp) FROM sensorTable s2 WHERE s1.sensorID = s2.sensorID)
ORDER BY sensorID, timestamp;
ログイン後にコピー

アプローチ 2: ウィンドウ関数

あるいは、スライディング ウィンドウ上でウィンドウ関数 MAX() を利用して、目的の結果を達成することもできます。 :

SELECT sensorID, MAX(timestamp) OVER (PARTITION BY sensorID ORDER BY timestamp) AS max_timestamp, sensorField1, sensorField2 
FROM sensorTable 
ORDER BY sensorID, max_timestamp;
ログイン後にコピー

どちらのアプローチも、最新のデータ ポイントを表すセンサー ID ごとに 1 つの行を効果的に選択します。選択は、特定のデータベース環境とパフォーマンス要件によって異なります。

以上が一意のセンサー ID ごとに最新のセンサー データを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート