私はPostgres 9.4で作業しています。JOINによる条件付き集計?
bnf_code │ character varying(15) │ not null
pills_per_day │ double precision │
日あたりの錠剤をたとえば、このテーブルは、4日あたりの推奨薬と、04030201
のコードを持つ薬が含まれている場合があり、およびコード04030202
と1および推奨:次のように私は、薬を含むテーブルを持っています2.の
そして私はまた、上記のテーブルへの外部キーを使用して、処方箋の数を含むテーブルを持っている:
code │ character varying(15) │ not null
num_pills │ double precision │ not null
processing_date │ date │ not null
practice_id │ character varying(6) │ not null
Foreign-key constraints:
FOREIGN KEY (code) REFERENCES medications(bnf_code) DEFERRABLE INITIALLY DEFERRED
今私は投与量は、すべてのコードのために処方されたどのように多くの毎日のワークアウトする必要がありますstarti ng 0403
。 1日用量は、実際に処方された錠剤の数を1日あたりの推奨される錠剤で割ったものとして定義される。
私は上記の2つの特定のコードのためにこれを行う方法を知っている:
SELECT (SUM(num_pills) FILTER (WHERE code='04030201')/4) +
(SUM(num_pills) FILTER (WHERE code='04030202')/2)
FROM prescriptions
しかし、私は一日のフィールドあたりの錠剤でハードコーディングできるためです。
私は0403
を開始するすべてのコードのために適切なpills_per_day
で除算し、これを拡張することができますか?可能であれば、数百もあるかもしれませんが、私は単一のSQLクエリを使用したいと考えています。
私はそれが簡単だとは信じられません!本当にありがとう :) – Richard