Comment peut-SQL créer des enregistrements en double?
J'ai eu un coup d'oeil à cette question: L'obtention de valeur aléatoire à partir d'une table SQLite et il m'a demande si on peut reproduire des enregistrements à l'aide de SQL. Plus précisément, est-il une construction qui permet de transformer ces enregistrements:
id| name| count
---------------
1| Anne| 3
2| Joe| 2
dans:
id| name
--------
1| Anne
1| Anne
1| Anne
2| Joe
2| Joe
où le comte de Anne
et Joe
enregistrements dans la dernière correspond à l' count
valeur dans l'ancien jeu d'enregistrements.
Peut-il être fait avec SQL? Si oui, comment?
EDIT:
Lucero demande ce dialecte SQL; tout vraiment, mais, idéalement, le plus agnostique approche serait la meilleure.
UN AUTRE EDIT:
Peut-il être fait au sein d'une seule instruction SQL en dire sqlite?
La réponse courte est Oui, il peut être fait 🙂
Arrrite, j'ai mis à jour ma question 😉
Pourquoi voudriez-vous? Que feriez-vous avec la base de données obtenue?
Je suis curieux c'est tout 😉 non, vraiment, je pensais à comment je pourrais alors choisir au hasard à partir de l'ensemble de résultats
Arrrite, j'ai mis à jour ma question 😉
Pourquoi voudriez-vous? Que feriez-vous avec la base de données obtenue?
Je suis curieux c'est tout 😉 non, vraiment, je pensais à comment je pourrais alors choisir au hasard à partir de l'ensemble de résultats
OriginalL'auteur | 2012-04-09
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un "numéros" de la table (c'est pratique pour les diverses opérations):
Alors:
Avertissement: Il y a bien sûr une limitation de cette approche. La requête ne sera pas produire toutes les lignes, dès que vous avez une valeur dans la
count
colonne qui dépasse le maximum de la valeur stockée dans la table de Nombres. Si les valeurs de lacount
colonne est sans limite, alors seulement un processus itératif ou récursif de la solution (comme les deux autres réponses).num
enregistrements aveci<=count
+1: Nice solution qu'il voyage bien.
OriginalL'auteur ypercubeᵀᴹ
Ce dialecte SQL et version? Il peut eaily être fait avec une expression de table commune récursive.
OriginalL'auteur Lucero
Cela peut être fait à l'aide d'une expression de table commune récursive:
REMARQUE: CTE_List est intéressant, CTE_Data est juste la source de données pour les tests.
OriginalL'auteur Jon Egerton