これは私のテーブルの例です:
drug_id | route (enum) | count
------------------------------
1 | PO | 2
1 | IV | 4
1 | IV | 6
2 | PO | 1
2 | PO | 5
2 | IV | 2
これが私が情報を必要とする方法です。基本的にSUM(count)
は、各「ルート」の列にあります。
drug_id | PO | IV
-----------------
1 | 2 | 10
2 | 6 | 2
私は私が学ぼうとしていたピボットが必要だと思いますが、私は一生の間、うまくいく簡潔なクエリをつなぎ合わせることができません。
私は次のようなことを試しました:
SELECT drug_id, PO, IV
FROM
(
SELECT drug_id, SUM(count) as PO, '0' as IV FROM `core_reports_antiinfectives` WHERE route="PO"
UNION
SELECT drug_id, SUM(count) as IV, '0' as PO FROM `core_reports_antiinfectives` WHERE route="IV"
) aa
ただし、これにより0
すべてIV
の列が得られ、とにかく適切であるとは確信していません。列を「グループ化」しdrug_id
てまとめる必要がありますが、これも行き詰まっています。
足りないものはありますか?それとも、それについて行くためのより良い方法はありますか?
ありがとう!