【问题标题】:Computing cross-category sales from user transaction data - For users who have done more than 1 transaction根据用户交易数据计算跨品类销售额 - 适用于完成超过 1 笔交易的用户
【发布时间】:2019-04-09 23:33:37
【问题描述】:

嗨,

输入数据

我有一个每日用户级别的 transaction_data,我想计算每月跨类别销售额 - 仅从超过 1 个类别购买的用户的聚合。

输出 -

有人可以建议如何在 sql 中解决这个问题吗?

【问题讨论】:

  • 请用相关且最少的示例数据来构建 SQL 问题,以展示您的要求,以及相应的预期输出。请阅读此链接:Why should I provide an MCVE for what seems to me to be a very simple SQL query?
  • @MadhurBhaiya,由于隐私问题无法分享相关数据,我们深表歉意。如果您能够分享一种方法,那也会很有帮助。
  • 我们对实际数据不感兴趣。请阅读我之前评论中的链接。这将有助于以更好的方式提出问题。
  • @dany99 。 . .我删除了 MySQL 标签,假设 Vertica 是故意的。

标签: sql vertica


【解决方案1】:

嗯。 . .这似乎符合您的描述:

select date_trunc('month', day), category,
       sum(transaction_amount), count(distinct user_id)
from (select d.*,
             min(category) over (partition by userid, date_trunc('month', day)) as min_category,
             max(category) over (partition by userid, date_trunc('month', day)) as max_category
      from daily d
     ) d
where min_category <> max_category -- at least two categories
group by date_trunc('month', day), category;

【讨论】:

  • 感谢您的回复。在此处获取 where 子句的异常。错误:WHERE 子句中不允许聚合
  • @dany99 。 . .我修正了错字。
猜你喜欢
  • 2022-11-02
  • 2020-07-22
  • 1970-01-01
  • 1970-01-01
  • 2011-03-20
  • 2020-05-16
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多