我有以下sql查询:
SELECT
to_char(p.log_date, 'Mon') as mon,
extract(year from p.log_date) as year,
from
T
group by
mon
having
mon = 'september'
and
year = '2018';
表格格式如下:
date col1 col2
2018/09/10 -- --
2018/09/11 -- --
2018/09/12 -- --
没有
mon
和year
列。我得到的错误
ERROR: column "mon" does not exist.
如何解决这个问题? 最佳答案
使用where子句无需
SELECT
to_char(p.log_date, 'Mon') as mon,
extract(year from p.log_date) as year from your_table
where to_char(p.log_date, 'Mon') = 'september'
and
extract(year from p.log_date) = '2018'
因为没有聚合函数,所以不要认为这里需要
mon是您的列alis名称,它在filter中找不到db engine,因此抛出了错误。
注意:并非所有dbms都支持过滤器中的别名(where或having)
关于sql - 在“group by”子句之后“具有”时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52964783/