【发布时间】:2016-01-28 15:49:21
【问题描述】:
当我尝试将 2 个表与我的数据连接起来时,我收到一条错误消息,指出我的引用不明确,或者我的原始表没有别名列。
这是我第一个使用 sql 的项目之一,对我来说是一个重要的学习点,所以我很感激你的指导。
这是我的代码。
WITH
RentDotComOnly AS
(
SELECT
concat(DATE_PART(mm,archived_apartments.week),clean_zip) AS "monthlyzip",
COUNT(clean_zip) AS "rent_count_clean_zip",
AVG((low_price+high_price)/2) AS "rent_avg_price", 0.85*min(low_price) AS "rent_lower_bound", 1.15*max(high_price) AS "rent_upper_bound"
FROM
archived_apartments
WHERE
source_type in (29,36,316)
AND week between '2015-07-06' and '2015-10-12'
AND is_house <> 1
AND archived_apartments.high_price <> 0
GROUP BY monthlyzip
),
AllRJData AS
(
SELECT
concat(DATEPART(mm,archived_apartments.week),clean_zip) AS "monthlyzip",
COUNT(clean_zip) AS "all_count_clean_zip",
AVG((low_price+high_price)/2) AS "all_avg_price"
FROM
archived_apartments
WHERE
week between '2015-07-06' and '2015-10-12'
AND is_house <> 1
GROUP BY monthlyzip
)
SELECT
concat(DATE_PART(mm,archived_apartments.week),clean_zip) AS "monthlyzip",
COUNT(archived_apartments.clean_zip) as filtered_count_clean_zip,
RentDotComOnly.rent_count_clean_zip, RentDotComOnly.rent_avg_price, RentDotComOnly.rent_lower_bound, RentDotComOnly.rent_upper_bound,
AllRjData.all_count_clean_zip, AllRjData.all_avg_price
FROM
archived_apartments
JOIN AllRJData
ON concat(DATE_PART(mm,archived_apartments.week),archived_apartments.clean_zip) = AllRJData.monthlyzip
JOIN RentDotComOnly
ON concat(DATE_PART(mm,archived_apartments.week),archived_apartments.clean_zip) = RentDotComOnly.monthlyzip
WHERE
archived_apartments.week between '2015-07-06' and '2015-10-12'
AND archived_apartments.is_house <> 1
AND archived_apartments.high_price <> 0
AND archived_apartments.low_price > RentDotComOnly.rent_lower_bound
OR archived_apartments.high_price < RentDotComOnly.rent_upper_bound
AND archived_apartments.week between '2015-07-06' and '2015-10-12'
AND archived_apartments.is_house <> 1
AND archived_apartments.high_price <> 0
GROUP BY monthlyzip
RentDotComOnly.rent_count_clean_zip, RentDotComOnly.rent_avg_price, RentDotComOnly.rent_lower_bound, RentDotComOnly.rent_upper_bound,
AllRjData.all_count_clean_zip, AllRjData.all_avg_price
ORDER BY monthlyzip
【问题讨论】:
-
为什么是
mysql-workbench标签? -
请用您真正使用的数据库标记您的问题。 Redshift 不支持名为
datepart()的函数(redshift 名称中有连字符)。 -
感谢 cmets。错误是“[Amazon](500310) 无效操作:列引用“monthlyzip”不明确;” - 我将 datepart() 更改为 date_part() 并且错误仍然存在。
标签: sql sql-server mysql-workbench amazon-redshift