によって期間ごとに最大のスコアを含む表Iは、このようなテーブルを持っている:SQLiteの:USER
USER PERIOD SCORE
A 1 8
A 1 9
A 2 2
A 2 3
A 3 4
A 3 5
B 1 2
B 1 3
B 2 5
B 2 4
B 3 4
B 3 4
C 1 2
C 1 3
C 2 3
C 2 5
C 3 3
C 3 4
私は、ユーザーごとの期間あたりの平均スコアを計算する必要があるので、私はこの
にテーブルを変換する必要がありますUSER PERIOD SCORE
A 1 8.5
A 2 2.5
A 3 4.5
B 1 2.5
B 2 4.5
B 3 4
C 1 2.5
C 2 4
C 3 3.5
そして最後に、私はこの
USER PERIOD SCORE
A 1 8.5
B 2 4.5
A 3 4.5
のように、唯一の各期間における最高のスコアと対応するユーザーを持つテーブルを作成する必要があります
私は2つのテーブルを作成することでこれを行うことができますが、私は素晴らしい質問者になりたいので、すべてを1つのステップで実行したいと思います。すべてのポインタ?これらは、これまでのところ、私のクエリです:
CREATE TABLE STEP1 AS SELECT
USER
,PERIOD
,AVG(SCORE) AS SCORE
FROM STEP0
GROUP BY 1,2
;
CREATE TABLE STEP2 AS SELECT
PERIOD
,MAX(SCORE) AS SCORE
FROM STEP1
GROUP BY 1
;
CREATE TABLE FINAL AS SELECT
A.USER
,B.PERIOD
,B.SCORE
FROM STEP1 A
JOIN STEP2 B
ON A.SCORE=B.SCORE
;
私はSQLiteのDBブラウザを使用していますが、私が求めているが、それを使用して行うことができない場合、つまり、我々はSQLiteのDBブラウザでは利用できない機能を必要とし、I別のSQLアプリケーションを使用することができます。
は、彼らが一緒に最高を獲得した場合、FINALテーブル内の同じ期間に複数のユーザーを取得する可能性があります。.. – Esty