我正在使用的数据在单独的列中包含 DAY-MONTH-YEAR,我想创建一个使用 MONTH 和 YEAR 组合的过滤器。这是一个例子:
transaction_id | customer | amount | day | month | year
---------------+----------+--------+-----+-------+-------
1 100 1000 01 05 2019
2 100 500 24 11 2018
3 100 2700 26 10 2018
4 205 800 19 11 2020
5 333 8000 05 05 2020
6 333 500 02 10 2019
7 333 200 19 12 2018
如果我只想返回transaction_id2019 年 1 月以后发生的情况,是否可以通过 MONTH + YEAR 的 concat 来完成,然后创建一个带有别名的新列?我尝试做这样的事情,但它一直在一年内返回:
SELECT transaction_id, concat(MONTH, YEAR) AS FULLDATE
FROM sample_table
这会以 201901(2019 年 1 月)的形式返回 FULLDATE 值,但我想知道这是否确实是正确的方法。
另外,如果是这样,我怎么能在 WHERE 子句中使用这个 FULLDATE:
SELECT transaction_id, concat(MONTH, YEAR) AS FULLDATE
FROM sample_table
WHERE FULLDATE >= 201901
我如何将其构建到子查询中才能使用别名?或者我应该尝试像 HAVING 子句这样的东西吗?我尝试了两者,但无法使其正常运行。也许有更好的方法?