У меня есть звонок, чтобы узнать количество игроков в наших магазинах, общая сумма меньше, чем сумма отдельных сумм. я в недоумении, почему это происходит.
SELECT (SELECT
COUNT(DISTINCT (playerid))
FROM playerhistory
WHERE MONTH(from_unixtime(checkouttime)) = 11
AND YEAR(from_unixtime(checkouttime)) = 2018
AND storeid > 100
AND howmuchplayed > 0)
AS total,
(SELECT
COUNT(DISTINCT (playerid))
FROM playerhistory
WHERE MONTH(from_unixtime(checkouttime)) = 11
AND YEAR(from_unixtime(checkouttime)) = 2018
AND storeid = 12786
AND howmuchplayed > 0)
AS ra,
(SELECT
COUNT(DISTINCT (playerid))
FROM playerhistory
WHERE MONTH(from_unixtime(checkouttime)) = 11
AND YEAR(from_unixtime(checkouttime)) = 2018
AND storeid = 12801
AND howmuchplayed > 0)
AS mp,
(SELECT
COUNT(DISTINCT (playerid))
FROM playerhistory
WHERE MONTH(from_unixtime(checkouttime)) = 11
AND YEAR(from_unixtime(checkouttime)) = 2018
AND storeid = 12830
AND howmuchplayed > 0)
AS cy,
(SELECT
COUNT(DISTINCT (playerid))
FROM playerhistory
WHERE MONTH(from_unixtime(checkouttime)) = 11
AND YEAR(from_unixtime(checkouttime)) = 2018
AND storeid = 13389
AND howmuchplayed > 0)
AS ne,
(SELECT
COUNT(DISTINCT (playerid))
FROM playerhistory
WHERE MONTH(from_unixtime(checkouttime)) = 11
AND YEAR(from_unixtime(checkouttime)) = 2018
AND storeid = 13600
AND howmuchplayed > 0)
AS lm,
(SELECT
COUNT(DISTINCT (playerid))
FROM playerhistory
WHERE MONTH(from_unixtime(checkouttime)) = 11
AND YEAR(from_unixtime(checkouttime)) = 2018
AND storeid = 13694
AND howmuchplayed > 0)
AS ch
, который дает результаты:
total | ra | mp | cy | ne | lm | ch
303 | 34 | 74 | 27 | 43 | 75 | 53
Как вы можете видеть, общее количество составляет 303, но когда вы складываете ra, mp, cy, ne, lm и ch, получается 306
других таблиц в таблице нет:
select distinct(storeid) from playerhistory where storeid > 100
Результат:
storeid
12786
12801
12830
13389
13600
13694
есть ли в моем запросе ошибка? почему не складывается?
спасибо за любую помощь в этом.