3.6.8 计算每日访问量

下面的示例展示了如何使用位组函数计算用户每月访问 Web 页面的天数.

  1. CREATE TABLE t1 (year YEAR(4), month INT UNSIGNED,
  2. day INT UNSIGNED);
  3. INSERT INTO t1 VALUES(2000,1,1),(2000,1,20),(2000,1,30),(2000,2,2),
  4. (2000,2,23),(2000,2,23);

示例表包含了用户访问页面的年月日值, 要确定每个月都有那些天发生了访问, 使用以下查询:

  1. SELECT year,month,BIT_COUNT(BIT_OR(1<<day)) AS days FROM t1
  2. GROUP BY year,month;

返回结果为:

  1. +------+-------+------+
  2. | year | month | days |
  3. +------+-------+------+
  4. | 2000 | 1 | 3 |
  5. | 2000 | 2 | 2 |
  6. +------+-------+------+

查询计算每个年月组合在表中出现的天数, 并自动删除重复条目.