Ich habe eine Select-Anweisung, die unter Tabelle (User_Result) zurückgeben.Set # Versuche nach Completed Date - Postgres SQL, Datenbank
userId UserName Course EnrolmentDate CompletedDate Status
111 User_01 Course1 2016-03-16 2016-03-18 Fail
111 User_01 Course1 2016-03-20 2016-03-24 pass
112 User_02 Course2 2016-01-05 2016-01-05 Fail
112 User_02 Course2 2016-01-05 2016-01-06 Fail
112 User_02 Course2 2016-01-20 2016-01-25 Pass
Jetzt möchte ich Anzahl der Versuche für diese Benutzer hinzufügen, je nach dort Anmeldedatum und abgeschlossenes Datum.
Wie ich tat ist;
With "report_result" AS
(
SELECT
"userID",
"UserName",
"Course",
"EnrolmentDate",
"Completed Date",
"status"
FROM "User_Result"
)
,
"attempts_tbl" AS (
SELECT
"userID",
"Course",
count(1) AS attempt
FROM report_result
GROUP BY "userID", "Course"
)
,
"finaltable" AS
(
Select
report_result.*,
attempts_tbl.attempt
from
report_result,attempts_tbl
where report_result."userID" = attempts_tbl."userID" and report_result."Course" = attempts_tbl."Course"
)
SELECT *
FROM final table;
Aber ich habe unten Ergebnis
userId UserName Course EnrolmentDate CompletedDate Status #Attempts
111 User_01 Course1 2016-03-16 2016-03-18 Fail 2
111 User_01 Course1 2016-03-20 2016-03-24 pass 2
112 User_02 Course2 2016-01-05 2016-01-05 Fail 3
112 User_02 Course2 2016-01-05 2016-01-06 Fail 3
112 User_02 Course2 2016-01-20 2016-01-25 Pass 3
Wie soll ich # Versuche erhalten nach dieser:
userId UserName Course EnrolmentDate CompletedDate Status #Attempts
111 User_01 Course1 2016-03-16 2016-03-18 Fail 1
111 User_01 Course1 2016-03-20 2016-03-24 pass 2
112 User_02 Course2 2016-01-05 2016-01-05 Fail 1
112 User_02 Course2 2016-01-05 2016-01-06 Fail 2
112 User_02 Course2 2016-01-20 2016-01-25 Pass 3
Mush Ihre Antworten zu schätzen wissen.
Danke :)
möchten Sie # Versuche eine rollende Summe zu sein? –
Ich möchte einen Versuch von 1, 2, 3 für jeden Datensatz bekommen, wie ich auf meinem letzten Tisch gezeigt habe. :) –