MYSQL:每小时1个重复结果
我正在创建一个“逐小时”报告,显示每小时登录到系统的用户数,我希望这是一个不同的计数 然而,当我运行下面的SQL时,它是在互相添加和附加1,例如,当真实数字为4时12am=5,当真实数字为9时1am=10 我搞不懂为什么会这样。下面有一个链接,显示我的结果是什么样子的,这很好,但是它显示的信息不正确 下面是我的问题MYSQL:每小时1个重复结果,mysql,Mysql,我正在创建一个“逐小时”报告,显示每小时登录到系统的用户数,我希望这是一个不同的计数 然而,当我运行下面的SQL时,它是在互相添加和附加1,例如,当真实数字为4时12am=5,当真实数字为9时1am=10 我搞不懂为什么会这样。下面有一个链接,显示我的结果是什么样子的,这很好,但是它显示的信息不正确 下面是我的问题 SELECT count(distinct IF(loginDate BETWEEN '2017-02-08 00:00:00' AND '2017-02-08 00:59
SELECT
count(distinct IF(loginDate BETWEEN '2017-02-08 00:00:00' AND '2017-02-08 00:59:59',
(Userid),
0)) AS '12am',
count(distinct IF(loginDate BETWEEN '2017-02-08 01:00:00' AND '2017-02-08 01:59:59',
(Userid),
0)) AS '1am',
count(distinct IF(loginDate BETWEEN '2017-02-08 02:00:00' AND '2017-02-08 02:59:59',
(Userid),
0)) AS '2am',
count(distinct IF(loginDate BETWEEN '2017-02-08 03:00:00' AND '2017-02-08 03:59:59',
(Userid),
0)) AS '3am',
count(distinct IF(loginDate BETWEEN '2017-02-08 04:00:00' AND '2017-02-08 04:59:59',
(Userid),
0)) AS '4am',
count(distinct IF(loginDate BETWEEN '2017-02-08 05:00:00' AND '2017-02-08 05:59:59',
(Userid),
0)) AS '5am',
count(distinct IF(loginDate BETWEEN '2017-02-08 06:00:00' AND '2017-02-08 06:59:59',
(Userid),
0)) AS '6am',
count(distinct IF(loginDate BETWEEN '2017-02-08 07:00:00' AND '2017-02-08 07:59:59',
(Userid),
0)) AS '7am',
count(distinct IF(loginDate BETWEEN '2017-02-08 08:00:00' AND '2017-02-08 08:59:59',
(Userid),
0)) AS '8am',
count(distinct IF(loginDate BETWEEN '2017-02-08 09:00:00' AND '2017-02-08 09:59:59',
(Userid),
0)) AS '9am',
count(distinct IF(loginDate BETWEEN '2017-02-08 10:00:00' AND '2017-02-08 10:59:59',
(Userid),
0)) AS '10am',
count(distinct IF(loginDate BETWEEN '2017-02-08 11:00:00' AND '2017-02-08 11:59:59',
(Userid),
0)) AS '11am',
count(distinct IF(loginDate BETWEEN '2017-02-08 12:00:00' AND '2017-02-08 12:59:59',
(Userid),
0)) AS '12pm',
count(distinct IF(loginDate BETWEEN '2017-02-08 13:00:00' AND '2017-02-08 13:59:59',
(Userid),
0)) AS '1pm',
count(distinct IF(loginDate BETWEEN '2017-02-08 14:00:00' AND '2017-02-08 14:59:59',
(Userid),
0)) AS '2pm',
count(distinct IF(loginDate BETWEEN '2017-02-08 15:00:00' AND '2017-02-08 15:59:59',
(Userid),
0)) AS '3pm',
count(distinct IF(loginDate BETWEEN '2017-02-08 16:00:00' AND '2017-02-08 16:59:59',
(Userid),
0)) AS '4pm',
count(distinct IF(loginDate BETWEEN '2017-02-08 17:00:00' AND '2017-02-08 17:59:59',
(Userid),
0)) AS '5pm',
count(distinct IF(loginDate BETWEEN '2017-02-08 18:00:00' AND '2017-02-08 18:59:59',
(Userid),
0)) AS '6pm',
count(distinct IF(loginDate BETWEEN '2017-02-08 19:00:00' AND '2017-02-08 19:59:59',
(Userid),
0)) AS '7pm',
count(distinct IF(loginDate BETWEEN '2017-02-08 20:00:00' AND '2017-02-08 20:59:59',
(Userid),
0)) AS '8pm',
count(distinct IF(loginDate BETWEEN '2017-02-08 21:00:00' AND '2017-02-08 21:59:59',
(Userid),
0)) AS '9pm',
count(distinct IF(loginDate BETWEEN '2017-02-08 22:00:00' AND '2017-02-08 22:59:59',
(Userid),
0)) AS '10pm',
count(distinct IF(loginDate BETWEEN '2017-02-08 23:00:00' AND '2017-02-08 23:59:59',
(Userid),
0)) AS '11pm'
FROM
mb_useraccessheader
这是因为您的
If
状况。您说的是不同(如果(true,userid,0))
。由于0
是一个值,因此它被视为不同的值
解决方案:将其替换为null