mysql中BIT_COUNT的统计使用
根据天计算访问量
下面的例子显示了如何使用位组函数来计算每个月中用户访问网页的天数。
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 ;
将返回:
+ -- ----+-------+------+
| year | month | days |
+ -- ----+-------+------+
| 2000 | 01 | 3 |
| 2000 | 02 | 2 |
+ -- ----+-------+------+
该查询计算了在表中按年 / 月组合的不同天数,可以自动去除重复的询问。
上面例子中的查询语句:
SELECT year,month,BIT_COUNT(BIT_OR(1<<day)) AS days FROM t1 GROUP BY year,month;
中的”BIT_COUNT(BIT_OR(1<<day)) “用法比较有技巧。
1、BIT_COUNT( expr ):返回 expr 的二进制表达式中”1“的个数。
例如:29 = 11101 则:BIT_COUNT(29)= 4;
2、BIT_OR( expr ):返回 expr 中所有比特的bitwise OR。计算执行的精确度为64比特(BIGINT) 。
例如:上面例子中,2000年02月中有一条2号的记录两条23号的记录,所以"1<<day"表示出来就是 “1<<2”和“1<<23”,得到二进制数 100 和 100000000000000000000000 。然后再OR运算。即 100 OR 10000000000000000000000 OR 10000000000000000000000 = 100000000000000000000100;这样再用BIT_COUNT处理得出的值就是2,自动去除了重复的日期。
分享到:
相关推荐
首先,手册中的"函数"部分会详细介绍如何在SQL查询中使用这些函数来处理数据。函数大致可以分为以下几类: 1. 数学函数:例如ABS()用于计算绝对值,SQRT()用于求平方根,RAND()用于生成随机数,以及一系列的三角...
在本套"MySQL数据库应用案例视频教程下载第6讲 MySQL函数"中,我们将深入探讨MySQL数据库中的函数使用,这是数据库管理、数据查询和分析的重要组成部分。视频教程将通过实例演示和详细讲解,帮助学习者掌握如何高效...
2. **位操作**:`BIT_AND()`, `BIT_OR()`, `BIT_XOR()`进行位运算,`BIT_COUNT()`计算位集中的1的个数。 这些函数在实际开发中非常常用,理解并熟练运用它们能极大地提高数据库操作的效率。例如,在数据分析时,...
- `GROUP BY` 用于对查询结果进行分组,聚合函数(如 `COUNT`, `SUM`, `AVG`, `MAX`, `MIN`)用于对每组进行统计计算。GROUP BY的修改程序如 `WITH ROLLUP` 可以提供额外的汇总行。 在SQL语句中,这些函数和操作符...
接下来,我们将深入探讨如何使用MySQL的基础命令对这些表进行操作。 首先,我们需要创建`store`数据库以及对应的表结构。创建数据库的命令如下: ```sql CREATE DATABASE store; ``` 然后,我们分别创建`goods`、...
ACOS, ADDTIME, AES_DECRYPT, AES_ENCRYPT, ANY_VALUE, ASCII, ASIN, ATAN, ATAN2, BINARY, BIT_COUNT, BIT_XOR, CAST, CEIL, CHAR_LENGTH, COLLATE, CONCAT_WS, CONVERT_TZ, COS, COT, COUNTIF, CRC32, DATE, DATE...
MySQL中的字符串函数是数据库操作中不可或缺的部分,它们用于处理和操作文本数据。字符串函数涵盖了从基本的字符转换到复杂的文本操作,例如查找、替换、截取和格式化字符串。以下是一些重要的MySQL字符串函数的详细...
### MySQL常用函数详解 #### 数学函数 - **ABS(x)**: 返回参数`x`的绝对值。 - **BIN(x)**: 将十进制数字`x`转换为二进制字符串表示。 - **CEILING(x)**: 返回不小于`x`的最小整数值。 - **EXP(x)**: 返回`e`的`x`...
聚合函数通常与`GROUP BY`子句一起使用,在SQL查询中进行统计分析。 - **AVG(col)**:返回指定列的平均值。 - 示例:`SELECT AVG(price) FROM products;` - **COUNT(col)**:返回指定列中非NULL值的数量。 - 示例...
### MySQL 数据类型与函数知识点详解 #### 数据类型 MySQL 支持多种数据类型,这些类型主要分为数值...以上是MySQL中常见的数据类型及函数的详细介绍,这些知识点对于理解和使用MySQL进行高效的数据管理至关重要。
- 分组统计:`SELECT age, COUNT(1) FROM emp GROUP BY age [WITH ROLLUP] HAVING COUNT(1) > 1;` - 多表联合查询:`SELECT ename, name FROM emp LEFT JOIN emp1 ON emp.ename = emp1.name;` - 子查询:`SELECT ...
10. SQL 语言的标准库函数 COUNT、SUM、AVG、MAX 和 MIN 等,不允许出现在 WHERE 子句中。 11. 建立唯一性索引的命令是 CREATE UNIQUE INDEX 索引名 ON 基本表名(属性名)。 12. 使用 T-SQL 语句从学生表中查询学号...
一、基本命令 1、启动服务, 已管理员身份运行cmd net satrt mysql 2、停止服务 ... 3、连接数据库 mysql -u 用户名 -p 4、断开连接 ...使用python写代码前,要退出mysql,要用pip install PyMySql添加库
- COUNT(col):统计指定列col中非NULL值的数量。 - MIN(col):找出指定列col的最小值。 - MAX(col):找出指定列col的最大值。 - SUM(col):返回指定列col的所有数值之和。 - GROUP_CONCAT(col):将属于同一组的...
- **函数应用**:了解并熟练使用各种内置函数,如COUNT、SUM、AVG、MAX、MIN等统计函数,以及SUBSTRING、REPLACE等字符串处理函数。 - **性能优化**:掌握索引的创建与管理,理解EXPLAIN分析查询计划,以及如何...
- **使用集合函数查询**:如COUNT、SUM、AVG等。 - **连接查询**:INNER JOIN、LEFT JOIN、RIGHT JOIN。 - **子查询**:在查询中嵌套另一个查询。 - **合并查询结果**:UNION、UNION ALL。 - **为表和字段取别名**:...
- **聚合函数**:COUNT、SUM、AVG、MAX、MIN等用于统计和计算。 9. **MySQL函数** - **日期函数**:如NOW()、DATE_ADD(),用于处理日期和时间。 - **字符串函数**:如LENGTH()、CONCAT(),用于处理文本数据。 -...
在MySQL中,数学函数是数据库操作的基础之一,它们可以处理各种数值运算需求。 - **ABS(X)**:返回`X`的绝对值。 - 示例:`SELECT ABS(-5);` 返回 `5`。 - **BIN(X)**:返回`X`的二进制表示形式。还有`OCT`函数...
- `COUNT`、`SUM`、`AVG`、`MAX`、`MIN`分别用于统计数量、求和、计算平均值、找出最大值和最小值。 19. **分组和筛选**: - `GROUP BY`用于数据分组。 - `HAVING`用于筛选分组后的数据。 20. **字符串和数学...
MySQL作为一款广泛使用的开源关系型数据库管理系统,在数据管理方面提供了丰富的功能。其中,函数是实现各种复杂操作的重要工具之一。本文将详细介绍MySQL中的几类常用函数,包括数学函数、聚合函数、字符串函数以及...