配置单元/sql:计算每个用户\u id获得多少uid
有一张像这样的桌子:配置单元/sql:计算每个用户\u id获得多少uid,sql,hive,hiveql,Sql,Hive,Hiveql,有一张像这样的桌子: +-----------+---------+------------+ | uid | user_id | month | +-----------+---------+------------+ | d23fsdfsa | 101 | 2017-01-02 | | 43gdasc | 102 | 2017-05-06 | | b65hrfd | 101 | 2017-08-11 | | 1wseda |
+-----------+---------+------------+
| uid | user_id | month |
+-----------+---------+------------+
| d23fsdfsa | 101 | 2017-01-02 |
| 43gdasc | 102 | 2017-05-06 |
| b65hrfd | 101 | 2017-08-11 |
| 1wseda | 103 | 2017-09-13 |
| vdfhryd | 101 | 2017-08-06 |
| b6thd3d | 105 | 2017-05-03 |
| ve32h65 | 102 | 2017-01-02 |
| 43gdasc | 102 | 2017-09-06 |
+-----------+---------+------------+
如果用户id出现在同一个月,那么如何计算每个用户id的数量
最后一个表应该如下所示:因为“101”在同一个月有两个uid,所以它只计算一个uid
+---------+-----------+
| user_id | count_num |
+---------+-----------+
| 101 | 2 |
| 102 | 3 |
| 103 | 1 |
| 105 | 1 |
+---------+-----------+
如果我理解正确,您需要每个用户的不同月份数。如果是:
select user_id, count(distinct trunc(month, 'MONTH')) as count_num
from t
group by user_id;