私は、ユーザの現在のIPと1つ以上の先行する両方のIPを含む可能性のあるテーブルからip、user、および最新のタイムスタンプを取得しようとしていますips。私は、最新のIPと関連するタイムスタンプを含む各ユーザのために1行を希望します。表は次のようになりますのであれば:特定のキーのインスタンスごとに最新の行を取得するSQLクエリ
username | ip | time_stamp
--------------|----------|--------------
ted | 1.2.3.4 | 10
jerry | 5.6.6.7 | 12
ted | 8.8.8.8 | 30
私は、クエリの出力があることを期待したい:
jerry | 5.6.6.7 | 12
ted | 8.8.8.8 | 30
私は、単一のSQLクエリでこれを行うことができますか?重要な場合は、DBMSはPostgresqlです。このような何か
Select u.[username]
,u.[ip]
,q.[time_stamp]
From [users] As u
Inner Join (
Select [username]
,max(time_stamp) as [time_stamp]
From [users]
Group By [username]) As [q]
On u.username = q.username
And u.time_stamp = q.time_stamp
私は正しい軌道に乗っていましたが、参加権が得られませんでした。これはトリックでした。ありがとう! – alanc10n
これはSQL Serverで動作しますか?同様のデータで全く同じことを試しましたが、最新のタイムスタンプだけでなく、すべての "ip"の行を取得しています。 – tcash21
HANAテーブルに対して使用すると、1が予想される複数の行が生成されました。 HANAには、一般的なSQLエンジンのほとんどと同じではない多くのものがあります。 –