考虑下表:

CREATE TABLE users (
  date timestamp,
  user_id text,
  PRIMARY KEY (date, user_id)
);


以以下数据为例:

date       user_id

25Aug2013    1
25Aug2013    2
25Aug2013    1
25Aug2013    3

26Aug2013    1
26Aug2013    2

27Aug2013    2
27Aug2013    3
27Aug2013    4

28Aug2013    1
28Aug2013    2
28Aug2013    1
28Aug2013    3


如何计算唯一的user_id数量?

最佳答案

一个想法可能是使用set collection

CREATE TABLE stats_unique (
  stat_group text,
  user_ids set<text>,
  PRIMARY KEY (stat_group)
);


插入将自动从集合中删除重复项,并且选择项将立即检索所有ID,因此您可以在应用程序级别进行计数。

如果您仅对唯一的user_id的数量感兴趣,而又没有实际从磁盘中检索它们,那么恐怕您所要做的仅仅是更改应用程序代码。

并记住深入研究collections limitations

08-27 14:02