日付ごと、同じ日付と値のように、このSQL - 合計は、私が見えるのデータセットを持って
Enc_ID | date | P1 | P3 |
--------------------------------
1 | 11/1/17 | 1 | NULL |
2 | 11/1/17 | NULL | 1 |
3 | 11/1/17 | 1 | NULL |
4 | 11/2/17 | 1 | NULL |
5 | 11/2/17 | NULL | 1 |
すなわち、各行は出会いで、任意の日に複数の出会いがあることができます(常に) 。
P1とP3の合計を毎日計算する必要があります。だから、:
date | sum_p1 | sum_p3 |
---------------------------
11/1/17 | 2 | 1 |
11/2/17 | 3 | 2 |
は、それから私は、このような各日付のこれらの合計ごとにこの計算を実行する必要があります。
(sum_p1 - sum_p3)/sum_p1
だから私は最終的に
date | dropout rate
----------------------
11/1/17 | 50%
11/2/17 | 33%
を示すであろうテーブルを必要としますスーパーセットでこれをやろうとしているので、JOINS
は使用できません。私はGROUP BY
入れ子のいくつかの種類を試みたが、MySQL (5.7.20)
それを好まない。
これは私の現在のクエリですが、それぞれの日付ではなく、各日付に対してp1とp3のSUM
を返します。
SELECT encounter_date AS __timestamp,
(SUM(p1) - SUM(p3))/SUM(p1) AS pd
FROM encounter
WHERE encounter_date >= '2016-11-06 00:00:00.000000'
AND encounter_date <= '2017-11-06 17:00:29.000000'
GROUP BY encounter_date
ORDER BY encounter_date ASC
LIMIT 50000
OFFSET 0
ですか? –
助けを書いて@Gordonに感謝します:) –
@ClodoaldoNeto現在私はMySQLで働いていますが、私たちはすぐにPostgresに切り替えると思いますので、両方ともタグを付けました –