3.5.8 Подсчет посещений за день
В этом разделе представлен пример использования групповых побитовых
функций для вычисления дней месяца, когда пользователь заходил на
веб-сайт.
CREATE TABLE t1 (year YEAR(4), month INT(2) UNSIGNED ZEROFILL,
day INT(2) UNSIGNED ZEROFILL);
INSERT INTO t1 VALUES(2000,1,1),(2000,1,20),(2000,1,30),(2000,2,2),
(2000,2,23),(2000,2,23);
SELECT year,month,BIT_COUNT(BIT_OR(1<<day)) AS days FROM t1
GROUP BY year,month;
Which returns:
+------+-------+------+
| year | month | days |
+------+-------+------+
| 2000 | 01 | 3 |
| 2000 | 02 | 2 |
+------+-------+------+
Этот запрос подсчитывает, сколько различных дней входит в данную
комбинацию год/месяц, автоматически исключая дублирующиеся значения.