Generally when one has this problem one joins this query with something from 
which one can get the whole list, something like this:

SELECT identifier, IFNULL(c, 0) AS Good, ....
(query with COUNT) AS P RIGHT JOIN table-of-identifiers ON P.identifier = 
table-of-identifiers.identifier

The "c" is the name given "COUNT(*)" in the query with COUNT(*).

This yields at least one row for every one in "table-of-identifiers", whether 
there is a match in "query with COUNT" or not; if not, "c" is NULL, and with 
"IFNULL" that NULL is made 0.

You write "test-taker", but for a field that could be the foregoing 
"identifier" your query contains only "subject_identifier", which does not look 
like a test-taker.

>>>> 2011/10/11 12:26 -0600, Jon Forsyth >>>>
I have a problem with the following query:

SELECT subject_identifier, COUNT(*) FROM asr_sentence_score WHERE
total_words = correct_words GROUP BY subject_identifier;

OutPut:

+--------------------+----------+
| subject_identifier | COUNT(*) |
+--------------------+----------+
|           222 |        2 |
|           111 |        2 |
|           333 |        1 |
|           444 |       11 |
|           888 |        6 |
|           666 |       25 |
|           777 |        2 |
|           555 |       20 |
|           999 |        4 |
|           000 |        3 |
+--------------------+----------+
10 rows in set (0.00 sec)

The asr_sentence_score table is a list of test results where each row is a
single item(sentence) on the test.  The subject_identifier is unique to the
test taker, and is repeated for each test item.  I was using this query to
compute a count of how many items each test taker scored perfectly (total_words
= correct_words), but I realized that this excludes a test taker who did not
score perfect for any item.  I want to output a '0' for those that did not
score any item perfectly. 
<<<<<<<<


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to