MySQL——BIT_COUNT和BIT_OR函数

本文介绍了在MySQL中遇到的一个计算用户每月访问网页天数的问题,探讨了使用COUNT()、COUNT(DISTINCT)以及BIT_COUNT和BIT_OR函数的不同解决方案。BIT_COUNT用于计算二进制数中1的个数,BIT_OR则执行二进制或运算,通过这两个函数可以巧妙地解决重复计数的问题。
摘要由CSDN通过智能技术生成

使用实验楼练习MySQL查询时碰到了这样一个题:

计算每个月中某用户访问网页的天数:
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 * from t1;
±-----±------±-----+
| year | month | day |
±-----±------±-----+
| 2000 | 01 | 01 |
| 2000 | 01 | 20 |
| 2000 | 01 | 30 |
| 2000 | 02 | 02 |
| 2000 | 02 | 23 |
| 2000 | 02 | 23 |
±-----±------±-----+

上面的表格反馈的是用户访问的年月日,那么很明显一月访问天数为3,二月访问天数为2,当然其中2月23日访问了2次。我开始以为只要查询月份记录就好了,于是我列了这样的代码:
select year,month,count(*) form t1 group by year,month;
返回的结果就变成了:

select year,month,count() from t1 group by year,month;
±-----±------±---------+
| year | month | count(
) |
±-----±

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值