J'ai une série de valeurs dans une base de données que j'ai besoin de tirer à la création d'une ligne graphique. Parce que je n'ai pas besoin d'une haute résolution, je voudrais ré-échantillonner les données en sélectionnant tous les 5 ligne à partir de la base de données.
Réponses
Trop de publicités?Puisque vous avez dit que vous utilisez MySQL, vous pouvez utiliser les variables utilisateur pour créer un continue la numérotation des lignes. Vous n'avez qu'à mettre ça dans une table dérivée (sous-requête) si.
SET @x := 0;
SELECT *
FROM (SELECT (@x:=@x+1) AS x, * FROM mytable ORDER BY RAND()) t
WHERE x MOD 5 = 0;
J'ai ajouté ORDER BY RAND()
pour obtenir un pseudo-aléatoires d'échantillonnage, au lieu de permettre à chaque cinquième ligne de la table non ordonnée d'être dans l'échantillon à chaque fois.
J'avais été à la recherche de quelque chose comme cela. La réponse de Taylor et Bill m'a conduit à améliorer leurs idées.
tableau data1 a des champs read_date, valeur nous voulons sélectionner tous les 2d enregistrement à partir d'une requête limitée par un read_date gamme le nom de la table dérivée est arbitraire et est appelé ici DT
requête:
SET @row := 0;
SELECT * FROM ( SELECT @row := @row +1 AS rownum, read_date, value FROM data1
WHERE read_date>= 1279771200 AND read_date <= 1281844740 ) as DT WHERE MOD(rownum,2)=0