実行するSqliteに対して複雑なクエリがあります。以下の表を参考にしてください。Sqliteでクエリを実行して、各ユーザーの3つの最新レコードのみをグループ化します。
各ユーザーIDとBatchIDとステータスの合計について、最新のレコードが3つ必要です。また、結果ごとにレコード数をカウントする必要があります。
たとえば、ユーザーID U6TH16003のレコード数が1である場合、レコード数は1になります。ユーザーU6TH15001には7つのレコードがあり、3つの最新レコードのみが考慮され、最新の3レコード
UserID Sum(Status) NumberOfRecords
U6TH16001 1 3
U6TH16002 3 3
U6TH16003 1 1
U6TH15001 2 3
をいただき、ありがとうございます:2を与え、ステータス・フィールドの合計のために考えられたレコードの合計数が3
Date UserID Status
2016-11-14 U6TH16001 0
2016-11-17 U6TH16001 0
2016-11-07 U6TH16001 1
2016-11-01 U6TH16001 0
2016-10-20 U6TH16002 1
2016-10-15 U6TH16002 1
2016-10-10 U6TH16002 1
2016-11-14 U6TH16003 1
2016-11-17 U6TH15001 1
2016-11-14 U6TH15001 0
2016-11-07 U6TH15001 1
2016-11-01 U6TH15001 0
2016-10-28 U6TH15001 1
2016-10-23 U6TH15001 1
2016-10-15 U6TH15001 1
である私は、上記の表のために必要な出力は以下の通りであるユーザーあなたの助け。
これは残念ながらSQLiteに組み込まれていない何らかの行番号機能を必要とします。 –
私はこれまでのようなものを試しました。:select UserID、SUM(Att_status)from userid)そして、それはすべての記録のために私を返すのですが、3人だけを考慮する方法はありますか? – Lovelesh
あなたの試みの問題は、 'LIMIT'がクエリ全体に適用されることです。しかし、それを各グループに適用したいとします。他のRDBMSには、各グループから上位3行を保持するために使用できる行番号機能があります。 SQLiteでは、何らかの形でこの動作をシミュレートする必要があります。 –