mysql - 为什么sql查询将错误未知列赋予别名
问题描述
为什么这个 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
在别名中声明了!
解决方案
您可以将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
推荐阅读
- javascript - 如何将禁用类添加到单个选择中,而不是我拥有的全部
- javascript - React 函数式组件(不再使用类组件)中的箭头函数和常规函数有什么区别?
- python-3.x - PYODBC + PYINSTALLER:EXE 列出不同的驱动程序作为编译器 (PyCharm)、32 位 Access 和 64 位 Python
- scala - 与 KSQL 连接 WHERE 子句等效的 java/scala kafka 流是什么?
- c++ - 在 constexpr 函数中,断点被命中
- django - 在 Python Django 中从 HTTP 重定向到 HTTPS
- android - 在 Ionic 4 中进行 AJX 调用时遇到问题
- sql - 使用 XML 元素连接表并获取嵌套元素属性的 SQL 查询
- python - Django:如何在管理页面上获取管理器对象
- abap - 通过 RFC 返回二进制数据