почему SQL-запрос дает ошибку неизвестный столбец псевдоним - PullRequest
1 голос
/ 04 ноября 2019

Почему этот SQL-запрос дает ошибку?

SELECT
  dt_created AS "time",
  humidity,
  ((temp* 1.8) + 32) AS temp_f,
  (-42.379 + 2.04901523 * temp_f + 10.14333127*humidity - .22475541* temp_f * humidity - .00683783 * temp_f* temp_f - .05481717*humidity*humidity + .00122874 * temp_f * temp_f*humidity + .00085282 * temp_f*humidity*humidity - .00000199 * temp_f * temp_f*humidity*humidity)  AS  "Feels Like"
FROM particle_photon
WHERE
  dt_created BETWEEN FROM_UNIXTIME(1572739408) AND FROM_UNIXTIME(1572825808)
ORDER BY dt_created;

Ошибка Error 1054: Unknown column 'temp_f' in 'field list' Но у меня действительно temp_f объявлено в псевдониме!

1 Ответ

0 голосов
/ 04 ноября 2019

вы можете использовать alias как часть вашего columns. Вы должны поместить это в subquery и выполнить необходимые вычисления.

select time
    , humidity
    , temp_f
    , (-42.379 + 2.04901523 * temp_f + 10.14333127*humidity - .22475541* temp_f * humidity - .00683783 * temp_f* temp_f - .05481717*humidity*humidity + .00122874 * temp_f * temp_f*humidity + .00085282 * temp_f*humidity*humidity - .00000199 * temp_f * temp_f*humidity*humidity)  AS  "Feels Like"
from (select
      dt_created as "time",
      humidity,
      ((temp* 1.8) + 32) AS temp_f
    from particle_photon
    where
      dt_created between FROM_UNIXTIME(1572739408) AND FROM_UNIXTIME(1572825808)
    order by dt_created) as t1

или

заменить temp_f на ((temp* 1.8) + 32), если вы не хотитеиспользовать subquery.

...