Tôi đang chuyển đổi một hệ thống dựa trên MS-Access cũ sang PostgreSQL. Trong Access, các trường được tạo thành trong CHỌN có thể được sử dụng làm các phần của phương trình cho các trường sau này, như sau:
SELECT
samples.id,
samples.wet_weight / samples.dry_weight - 1 AS percent_water,
100 * percent_water AS percent_water_100
FROM samples;
Khi tôi làm điều này trong PostgreSQL, Postgres sẽ gặp lỗi:
LRI: cột "Perc_water" không tồn tại.
Đây là cách tôi có thể làm việc xung quanh nó, bằng cách chọn ra một lựa chọn phụ:
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;
Có bất kỳ loại phím tắt như trong khối mã đầu tiên để có được xung quanh lồng nhau phức tạp? Tôi cũng có thể nói 100 * (samples.wet_weight / samples.dry_weight - 1) AS percent_water_100
, nhưng đây chỉ là một ví dụ nhỏ trong số một hệ thống toán học lớn hơn đang diễn ra trong mã của tôi, với hàng tá các bit toán học phức tạp xếp chồng lên nhau. Tôi muốn làm sạch nhất có thể mà không cần lặp lại.