当我运行此查询列“ic.inscount”必须出现在GROUP BY子句或聚合函数中使用
WITH install_count_join_date AS (
SELECT
date_trunc('month', join_date) AS date,
COUNT(*) AS "inscountjoin"
FROM
apps202_prod.search
WHERE
join_date >= '2016-06-01'
AND
app_id = 3
GROUP BY
date_trunc('month', join_date)
), install_count AS (
SELECT
DATE(original_timestamp) AS date,
COUNT(*) AS "inscount"
FROM
apps202_prod.search
WHERE
original_timestamp >= '2016-06-01'
AND
app_id = 3
GROUP BY
DATE(original_timestamp)
)
SELECT
date_trunc('month', mr.date) AS "money_revenue_date",
SUM(mr.amount) AS "amt",
ic.inscount AS "install_count"
FROM
mysql_apps202_prod.apps202_prod_money_revenue mr
join install_count ic on date_trunc('month', ic.date) = date_trunc('month', mr.date)
WHERE
date_trunc('month', mr.date) >= '2016-06-01'
AND
mr.app_id = 3
GROUP BY
date_trunc('month', mr.date)
我得到这个错误:
column ic.inscount must appear in the GROUP BY clause or be used in an aggregate function
该错误是相当自我解释...因为你的最终查询使用聚合('sum'),您需要将其他字段添加到'组by'子句... – sgeddes
我不需要为该组添加子帐号,因为我已经在with子句中汇总了它,因为您在上面的代码中看到它 –
您正在汇总外部查询中的“amount”列。所以是的,你必须再次使用'group by'(对于这两个字段)... – sgeddes