複雑な SQL ステートメントは初めてなので、助けが必要です。結果セットの半分を表示することができ、残りに苦労しています。
必要な結果:
PSU | pregnancy number| pregnancy percentage | % of live birth out of the pregnancy number.
1 | 2 | 67% | 40%
2 | 1 | 33% | 80%
以下に記述されたSQLを使用して、最初の3列を取得できました。
2 列目と 3 列目は、 の where ステートメントが必要でしfieldname = 'Q111'
た。4 番目の列には、where ステートメントでパーセンテージが必要です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
ゴードン、あなたの提案は私を大いに助けました.それに応じてクエリを更新しました.私が今書いている問題は、Q112の追加の行を取得していることです.
電源ユニット | 妊娠数| 妊娠率 | 妊娠数のうち出生率。
1 | 2 | 67% | 40%
2 | 1 | 33% | 80%
2 | 1 | 0% | 20% (3 行目は Q112 に追加)
ただし、グループ化を行っている間は Q112 エントリは必要ありません。group by を case ステートメントと main where ステートメントで別々に使用できますか? group by で「having」を使用してみましたが、期待どおりの結果が得られません。