代码之家  ›  专栏  ›  技术社区  ›  Ciasto piekarz

为什么sql查询将错误未知列赋给别名

  •  0
  • Ciasto piekarz  · 技术社区  · 6 年前

    为什么这个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 回复  |  直到 6 年前
        1
  •  0
  •   Ed Bangga    6 年前

    你可以用 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) 如果你不想使用 子查询 是的。