我正要问这个MySql列表并记得SO.
运行MySql 5.0.85,我需要尽可能高效地查询一些查询.如果我能得到一点评论,我将不胜感激.
我收集了数百万的数据,需要按一个字段分组的前50个,占前50个占据的百分比.
以下是我的想法... 1)我有一种感觉我可以更有效率,也许是加入2)我怎样才能得到百分比精度百分比,所以*100.00即:.07变为7.00,如果我得到SQL错误(百分比*100)
SELECT user_agent_parsed, user_agent_original, COUNT( user_agent_parsed ) AS thecount,
COUNT( * ) / ( SELECT COUNT( * ) FROM agents ) AS percentage
FROM agents
GROUP BY user_agent_parsed
ORDER BY thecount DESC LIMIT 50;
Run Code Online (Sandbox Code Playgroud)
第二个问题,每天一次我需要归档上面的结果.有关如何最好地做到这一点的任何建议?我可以安排使用cron,或者在我的情况下,启动,除非有人有更好的建议.
你会认为一个简单的'SELECT(上面的)INTO foo'就够了吗?
首要问题:
select count(*) from agents into @AgentCount;
SELECT user_agent_parsed
, user_agent_original
, COUNT( user_agent_parsed ) AS thecount
, COUNT( * ) / ( @AgentCount) AS percentage
FROM agents
GROUP BY user_agent_parsed
ORDER BY thecount DESC LIMIT 50;
Run Code Online (Sandbox Code Playgroud)