I have a table as follows:
CREATE TABLE student_gradedmaterial(
id SERIAL,
studentid INT8 REFERENCES student,
gradedmaterialid INT8 REFERENCES gradedmaterial,
caid INT8 REFERENCES ca,
...
submittime TIMESTAMP,
gradedtime TIMESTAMP,
score INT4
);

Every time a student submits a homework, one new entry in the table is created. I know how to grab the latest version based on the submittime but naturally, I'd like to be able to count how many homeworks are graded and ungraded (ungraded means score is NULL). This smells of a subselect:

graded (grab row count):
SELECT UNIQUE id FROM student_gradedmaterial WHERE EXISTS (SELECT the latest unique submissions);
or:
SELECT COUNT(score) FROM student_gradedmaterial WHERE gradedmaterialid=X AND submittime = MAX(SELECT submittime FROM student_gradedmaterial WHERE gradedmaterialid=X);

(Sub-selects just make my head explode.) Any hints for me? Thanks.
><><><><><><><><><
AgentM
[EMAIL PROTECTED]



---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to