J'étais sur le point de demander la liste MySql et je me suis souvenu de SO.Obtention d'un pourcentage de MySql avec un groupe par condition, et précision
En cours d'exécution MySql 5.0.85, je dois être aussi efficace que possible sur quelques requêtes. Si je pouvais avoir une petite critique, j'apprécierais.
Je recueille des données dans les millions, et j'ai besoin des 50 premiers groupés par un champ, avec un pourcentage de combien ces 50 premiers occupent.
Voici ce que je suis venu avec ... 1) Je sens que je peux être plus efficace, peut-être avec une jointure 2) Comment puis-je obtenir le pourcentage d'être de précision dans les centièmes, donc * 100,00 à savoir: .07 devient 7,00, obtenez des erreurs SQL si je (pourcentage * 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;
question en second lieu, une fois par jour, je dois archiver le résultat de ce qui précède. Des suggestions sur la meilleure façon de faire cela? Je peux programmer avec cron, ou dans mon cas, launchd, sauf si quelqu'un a une meilleure suggestion.
Pensez-vous qu'un simple 'SELECT (ci-dessus) INTO foo' suffirait?
Deuxième question: dont vous avez besoin du temps/date dans les archives? – lexu
Désolé, oui, j'ai un horodatage de ajouté et mis à jour, ne l'a pas montré dans l'exemple. Je vais porter un identifiant unique ainsi – user170579