Burada bir soru sordum: /programming/43807566/how-to-divide-two-values-from-the-same-column-but-at-different-rows
değerleri aynı tabloda, aynı sütunda, ancak farklı satırlarda bölme hakkında. Şimdi daha fazla numara ve paydaya sahip olan problemim var (farklı uns
). self join
Bu sorunu Postgres ile çözmek için hala iyi bir yol var mı yoksa daha iyi çözümler var mı?
Misal:
| postcode | value | uns |
|----------|-------|-----|
| AA | 40 | 53 |
| BB | 20 | 53 |
| AA | 10 | 54 |
| AA | 20 | 55 |
| AA | 10 | 56 |
| AA | 30 | 57 |
| AA | 50 | 58 |
| BB | 10 | 54 |
| BB | 10 | 55 |
| BB | 70 | 56 |
| BB | 80 | 57 |
| BB | 10 | 58 |
Sonuç şöyle olmalıdır:
| postcode | formula |
|----------|------------|
| AA | 18.888... |
| BB | 14.375 |
Değerin posta koduna göre gruplandırıldığı ve formülün (uns ile değer) olduğu durumlarda:
(V53 * V56 + V54 * V57 + V55 * V58) / (V56 + V57 + V58)
Nihai sıfıra bölünmemeye dikkat edin. Formül daha da karmaşık olabilir, ancak bu iyi bir örnektir.
uns
sütun isimleri haline getirmek için oradan döndürmek olacaktır - oradan, değerleri hangi formül kullanırsa kullanın uygulanabilir olmalıdır. Formül sabit olarak kodlanacak mı yoksa bir şekilde dinamik olarak mı türetilecek?