J'ai une série de valeurs dans une base de données que j'ai besoin de tirer pour créer un graphique linéaire. Parce que je ne nécessite pas de haute résolution, je voudrais rééchantillonner les données en sélectionnant chaque 5ème rangée de la base de données.Comment sélectionnez-vous chaque nième ligne de mysql?
Répondre
SELECT *
FROM (
SELECT
@row := @row +1 AS rownum, [column name]
FROM (
SELECT @row :=0) r, [table name]
) ranked
WHERE rownum % [n] = 1
Vous pouvez essayer mod 5 pour obtenir les lignes où l'ID est multiple de 5. (En supposant que vous avez une sorte de colonne ID qui est séquentielle.)
select * from table where table.id mod 5 = 0;
En supposant également que vous n'avez aucun espace dans la séquence, en raison de la suppression ou de l'annulation. –
Cela fonctionnerait pour la plupart, mais ne tient pas compte des lignes supprimées. –
Simple et brillant pour certains tests :-) –
Puisque vous avez dit que vous utilisez MySQL, vous pouvez utiliser user variables pour créer une numérotation continue des lignes. Vous devez cependant mettre cela dans une table dérivée (sous-requête).
SET @x := 0;
SELECT *
FROM (SELECT (@x:[email protected]+1) AS x, mt.* FROM mytable mt ORDER BY RAND()) t
WHERE x MOD 5 = 0;
J'ajouté ORDER BY RAND()
pour obtenir un échantillonnage pseudo-aléatoire, au lieu de permettre à chaque cinquième ligne de la table pour être non ordonnée dans l'échantillon à chaque fois.
Un utilisateur anonyme a essayé de la modifier pour changer x MOD 5 = 0
-x MOD 5 = 1
. Je l'ai changé à mon original. Pour l'enregistrement, on peut utiliser n'importe quelle valeur entre 0 et 4 dans cette condition, et il n'y a aucune raison de préférer une valeur plutôt qu'une autre.
Je mettais à jour ma réponse à cela, et tu m'as battu dessus! Bien pensé. –
malheureusement, cela ralentit l'exécution d'au moins x100 lorsque vous travaillez avec de nombreuses entrées – Blauhirn
Je cherchais quelque chose comme ça. La réponse de Taylor et Bill m'a amené à améliorer leurs idées.
Table data1 a des champs read_date, la valeur nous voulons sélectionner tous les enregistrements 2d d'une requête limitée par une gamme read_date le nom de la table dérivée est arbitraire et ici est appelé 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
Merci, je cherchais ça. J'avais besoin de vérifier en quelque sorte si une certaine colonne dans une table de notation pour des procédures stockées avait la même valeur toutes les deux fois. Comme 'proc commençant', 'proc ending'. Le sql ci-dessous se traduira par 1 si tout va bien. 'SET @row: = 0; SELECT count (message distinct) FROM ( SELECT @row: = @row +1 AS rownum, Message FROM opérations.EventLog O Log LogTime> now() - intervalle 6 heures et ProcedureName = 'Do_CDR' ) en tant que DT WHERE MOD (rownum, 2) = 0; ' – eigil
SET @a = 0;
SELECT * FROM t where (@a := @a + 1) % 2 = 0;
$Query = "SELECT *
FROM (
SELECT @row := @row +1 AS rownum, posts.*
FROM (
SELECT @row :=0) r, posts
) ranked
WHERE rownum %3 =1";
où les messages est ma table:
- 1. SQL: obtenir Nième élément dans chaque groupe
- 2. Sélectionnez somme commutative Mysql de chaque ligne
- 3. Déclencher pour repeindre nième ligne dans JList
- 4. Comment puis-je obtenir la position nième ligne de la table sans utiliser de limite?
- 5. Insérer une ligne pour chaque
- 6. Comment puis-je demander à Excel de copier chaque nième cellule d'une feuille sur une autre?
- 7. comment itérer chaque ligne d'un fichier ascii
- 8. SQL sélectionnez nième membre du groupe
- 9. Comment obtenir la nième lettre de l'alphabet
- 10. simple sélectionnez nième plus haut
- 11. awk extraire plusieurs groupes de chaque ligne
- 12. priorité de ligne MySQL
- 13. Comment SUM de MySQL pour chaque enregistrement n
- 14. MySQL: Insérer une ligne pour chaque clé dans la table étrangère, pour chaque valeur distincte dans le tableau
- 15. Comment trouver la position du nième jeton
- 16. La valeur de MySQL AVG() ne se réinitialise pas sur chaque ligne
- 17. MySQL: combien d'entrys pour chaque identifiant à chaque date?
- 18. Insérer un GUID à chaque ligne existante
- 19. Comment lire chaque ligne XML dans des chaînes spécifiées?
- 20. Comment casser la ligne par chaque unité d'élément
- 21. Compter les enfants dans une autre table pour chaque ligne
- 22. DataGridViewComboBoxColumn ajoutant différents éléments à chaque ligne.
- 23. Requête MySQL pour assigner un nombre aléatoire unique à chaque ligne
- 24. Javascript Fibonacci nième terme Optimisation
- 25. MySQL - LIMIT Tricky pour chaque problème WHERE_IN
- 26. Génération de nombres aléatoires dans chaque ligne Oracle Query
- 27. MySQL: Obtenir une certaine ligne
- 28. ASP/VB .NET Formatage de chaque ligne d'une grille?
- 29. Récupère le texte de chaque ligne dans un Gridview paginé
- 30. Groupe MySQL par numéro top N de chaque type
Quelqu'un peut-il fournir plus d'informations sur comment cela fonctionne? Par exemple la question posée pour chaque 5ème rangée et il n'y a aucune mention de 5 dans la réponse. – Crazometer
@Crazometer remplacer '[n]' dans la requête avec 5 pour obtenir chaque 5ème rangée. –
Pour développer cela, que se passe-t-il si vous ne voulez pas commencer avec la première ligne mais la 2ème par exemple? – HPWD