CREATE TABLE sales (
id SERIAL PRIMARY KEY,
last_order DATE,
customer VARCHAR(255)
);
INSERT INTO sales
(last_order, customer)
VALUES
('2020-04-10', 'user_01'),
('2020-06-15', 'user_02'),
('2020-08-26', 'user_03');
CREATE TABLE customers (
id SERIAL PRIMARY KEY,
first_order DATE,
customer VARCHAR(255)
);
INSERT INTO customers
(first_order, customer)
VALUES
('2020-03-10', 'user_01'),
('2020-05-15', 'user_02'),
('2020-01-17', 'user_03');预期结果:
last_order | first_order |
-------------|-------------------|----
2020-04-10 | |
2020-06-15 | |
2020-08-26 | |
| 2020-03-10 |
| 2020-05-15 |
| 2020-01-17 |
| |在表sales中,我有last_order的日期,在表customers中,我有first_order的日期。
现在,我希望两个表都是UNION ALL,因此需要填充列last_order和--分别填充列first_order和NULL,以保持结构相等。
在postgresSQL中,我使用此查询,该查询工作正常,没有任何问题:
SELECT
s.last_order AS last_order,
NULL AS first_order
FROM sales s
UNION ALL
SELECT
NULL AS last_order,
c.first_order AS first_order
FROM customers c但是,当我将此查询应用于amazon-redshift时,会出现以下错误:
Invalid operation: UNION types date and text cannot be matched如何修改amazon-redshift中的查询以达到预期的结果?
发布于 2021-05-18 15:25:06
一种有趣的方法是:
select s.last_order, c.first_order
from sales s full join
customers c
on 1 = 0; -- never true!https://stackoverflow.com/questions/67588388
复制相似问题