这是我当前的查询:MySQL的查询给予不准确的结果
select baseball , const.cnt/count(*) as my_percent
from full_db3 inner join
(select count(*) as cnt from full_db3 where gender = 'f') const
group by baseball
order by my_percent desc limit 10;
这会产生不准确的结果。 baseball
的可能值为TRUE和FALSE,这些值出现在我的结果的baseball
列中。但是,my_percent
的值全部关闭。差远了。
如果我运行这个查询(不同的GROUP BY
),我在my_percent
中得到了正确的值FALSE,但TRUE不在结果中。
select baseball , const.cnt/count(*) as my_percent
from full_db3 inner join
(select count(*) as cnt from full_db3 where gender = 'f') const
group by const.cnt
order by my_percent desc limit 10;
我在这里错过了什么?
谢谢。这运行没有错误,但结果是错误的。我在'棒球'专栏中回到了TRUE和FALSE,这是正确的,但'pct'中的值都是错误的。它们应该加起来为100,但总和为130.7。这两个值都不是正确的。 – jonmrich 2015-04-02 00:31:40
如果我删除'group by baseball',我只能得到FALSE的正确值。查询结果中不显示TRUE。 – jonmrich 2015-04-02 00:32:44
你需要解释你想要的值。你得到的答案是女性所有(棒球=真)的百分比,以及女性所有(棒球=假)的百分比。你只是想要女性做百分比还是没有棒球=真? – 2015-04-02 00:33:45