Eski bir MS Access tabanlı sistemi PostgreSQL'e dönüştürüyorum. Access'te, SELECT’lerde oluşturulan alanlar daha sonraki alanlar için denklemlerin bir parçası olarak kullanılabilir:
SELECT
samples.id,
samples.wet_weight / samples.dry_weight - 1 AS percent_water,
100 * percent_water AS percent_water_100
FROM samples;
Bunu PostgreSQL'de yaptığımda, Postgres bir hata veriyor:
HATA: "yüzde_su" sütunu mevcut değil.
Alt seçimlerden birini seçerek bu konuda nasıl çalışabilirim:
SELECT
s1.id,
s1.percent_water,
100 * s1.percent_water AS percent_water_100
FROM (
SELECT
samples.id,
samples.wet_weight / samples.dry_weight - 1 AS percent_water
FROM samples
) s1;
Karmaşık yuvalamanın üstesinden gelmek için ilk kod bloğunda olduğu gibi herhangi bir kısayol var mı? Ben de söyleyebilirim 100 * (samples.wet_weight / samples.dry_weight - 1) AS percent_water_100
ama bu, kodumda gerçekleşen çok daha büyük bir matematik sisteminin ne olduğuna dair küçük bir örnektir, onlarca üst üste düzinelerce daha karmaşık matematik parçaları. Kendimi tekrar etmeden mümkün olduğu kadar temiz yapmayı tercih ederim.