タグ付けされた質問 「greatest-n-per-group」

グループごとに最大/最小値を持つ行をクエリします。

1
グループごとに最大/最小<何でも>のレコードを取得する
どうやってするか? この質問の以前のタイトルは「ランクを使用した複雑なクエリでランクを使用(@Rank:= @Rank + 1)-機能しますか?」でしたが、ランクを使用したソリューションを探していましたが、Billが投稿したソリューションがはるかに良い。 元の質問: 定義された順序を指定して、各グループから最後のレコードを取得するクエリを作成しようとしています。 SET @Rank=0; select s.* from (select GroupId, max(Rank) AS MaxRank from (select GroupId, @Rank := @Rank + 1 AS Rank from Table order by OrderField ) as t group by GroupId) as t join ( select *, @Rank := @Rank + 1 AS …

4
PostgreSQLでカテゴリ別に最大日付グループのIDを選択するにはどうすればよいですか?
たとえば、カテゴリごとに最大日付グループのIDを選択すると、結果は7、2、6になります。 id category date 1 a 2013-01-01 2 b 2013-01-03 3 c 2013-01-02 4 a 2013-01-02 5 b 2013-01-02 6 c 2013-01-03 7 a 2013-01-03 8 b 2013-01-01 9 c 2013-01-01 PostgreSQLでこれを行う方法を教えてもらえますか?

7
各キー値の最新のタイムスタンプを持つ行を選択するにはどうすればよいですか?
センサーデータの表があります。各行には、センサーID、タイムスタンプ、およびその他のフィールドがあります。他のいくつかのフィールドを含め、各センサーの最新のタイムスタンプを持つ単一の行を選択したいと思います。 解決策は、センサーIDでグループ化し、次に次のようにmax(timestamp)で並べ替えることだと思いました。 SELECT sensorID,timestamp,sensorField1,sensorField2 FROM sensorTable GROUP BY sensorID ORDER BY max(timestamp); これにより、「sensorField1はgroup by句に含まれるか、集計で使用される必要があります」というエラーが表示されます。 この問題に取り組む正しい方法は何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.