2012-06-08 32 views
1

我試圖從以下mysql語句中獲得唯一問題的計數,但是每次我嘗試將count(q.id)添加爲questionCount時,語句只返回一個結果。我顯然做錯了什麼,但我無法弄清楚它是什麼。從複雜的mysql語句中獲取計數

http://www.sqlfiddle.com/#!2/34906/58

希望有人可以提供幫助。

史蒂夫

+0

你的意思是單行結果?或返回的行中的值是1? –

+0

我試試你的問題,並得到20 –

回答

1

只要編輯您的查詢的2號線到這一個:

select 
    count(distinct FinalQA.QUESTION_ID) from..... 
+0

的結果你可以擴大一點這個答案嗎? 20是錯誤的,因爲只有5個獨特的問題。每個出現4次20次。 – SteveF

+0

不好意思。我的新答案是您的解決方案。不是嗎? –

+0

嗨 - 不,它仍然只返回一個問題而不是5個問題,每個問題有4個答案,就像沒有添加計數一樣。另外question_id在第二行不存在,所以返回'未知列'錯誤 – SteveF

0

看樣子你想在每一行的總問題「加蓋」 ......比如你是自動生成一個測試,並希望它在輸出中顯示「5個問題」。爲了簡化這一點,既然你知道你想通過你的WHERE子句5個問題,我會稍微調整它...

select 
     FinalQA.* 
    from 
     (select 
       5 as TotalQuestionsOffered, 
       QWithAllAnswers.*, 
       ... rest of query) FinalQA 
    where 
     FinalQA.ARankSeq <= FinalQA.TotalQuestionsOffered 
+0

感謝您的答覆。問題是,雖然我可能會問5,但並不總是有5個問題,這就是爲什麼我想知道發現問題的確切數量。 – SteveF