【发布时间】:2019-07-12 18:31:00
【问题描述】:
我需要编写一个查询来生成频率表。目前我正在研究亚马逊红移数据库。我生成了一个如下所示的表格:
user_id user_label code1 code2 code_3 date
------ ----------- ----- ----- ------ -------
1 x a b c 01-01
1 x a d c 01-01
1 x a b c 01-02
1 y a c d 01-01
2 x a b d 01-01
等
计算出现次数的规则是,如果两行具有相同的 id 和 date,则重复代码应仅计算一次。
例如,对于前两行,频率表应该是:
user_id user_label a b c d
-------- ----------- -- -- -- --
1 x 1 1 1 1
因为即使 a 和 c 有两个实例,但它们发生在同一日期,所以应该只计算一次,我需要为 user_id + user_label 的每个唯一组合执行此操作
那么在处理完第三行之后,频率表应该是:
user_id user_label a b c d
-------- ----------- -- -- -- --
1 x 2 2 2 1
因为第三行有不同的日期,因此 a,b,c 的计数应该增加 1
最后,对于上面给出的示例表,期望的结果应该是
user_id user_label a b c d
-------- ----------- -- -- -- --
1 x 2 2 2 1
1 y 1 1 1 0
2 x 1 1 0 1
我知道我应该把到目前为止我尝试过的东西放在一起,但我真的不知道从哪里开始。 这不是家庭作业问题,任何提示或建议将不胜感激。
【问题讨论】:
-
根据您的问题,我将标签更改为 amazon-redshift。
标签: sql amazon-redshift