我是新來的複雜SQL語句,需要幫助。 我已經設法顯示結果集的一半,並與剩餘的掙扎。在單個MySQL語句中計算多個百分比
需要結果:
PSU | pregnancy number| pregnancy percentage | % of live birth out of the pregnancy number.
1 | 2 | 67% | 40%
2 | 1 | 33% | 80%
下面寫的SQL,我設法拿到第3列。
第二和第三列要求在fieldname = 'Q111'
的陳述中。第4列要求與fieldname = 'Q112
的聲明的百分比。 如何將不同的where語句組合在一起。
SELECT sms_psu.name1 AS PSU,
woman_data.answertext AS NumberOfPreg,
Count(woman_data.answertext)/(SELECT Count(woman_data.answertext)
FROM woman_data
INNER JOIN sms_household
ON woman_data.prim_key =
ms_household.hhid
INNER JOIN sms_psu
ON sms_psu.psu =
sms_household.psu
WHERE sms_psu.state = 19
AND sms_psu.district = 1
AND sms_psu.psu = 2
AND fieldname = 'Q139') AS
totalcpuntpreg
FROM woman_data
INNER JOIN sms_household
ON woman_data.prim_key = sms_household.hhid
INNER JOIN sms_psu
ON sms_psu.psu = sms_household.psu
WHERE sms_psu.state = 19
AND sms_psu.district = 1
AND sms_psu.psu = 2
AND fieldname = 'Q111'
GROUP BY woman_data.answertext,
sms_household.psu
戈登,你的建議幫了我一個lot.I更新了我的詢問,我有寫,現在是,IAM得到額外一行Q112
PSU accordingly.The問題|懷孕次數|懷孕百分比|懷孕人數中的活產百分比。
1 | 2 | 67%| 40%
2 | 1 | 33%| 80%
2 | 1 | 0%| 20%(第三排是Q112的附加)
但我不需要Q112條目,而我做分組。我可以在case語句和主要where語句中分別使用group嗎?我嘗試用「有」與團體,但力量得到預期的結果。
歡迎來到計算器。如果你弄清楚如何在邏輯上顯示你的代碼,這是非常有用的;我已經編輯你的問題,試圖做到這一點。有關您的數據的更多信息也很有幫助。 – 2012-08-17 12:18:13
'fieldname'列從哪裏來?它前面沒有表別名。 – 2012-08-21 09:33:39