J'ai une question sql/sqlite. J'ai besoin d'écrire une requête qui sélectionne certaines valeurs d'une table de base de données sqlite. Je veux toujours que les enregistrements retournés au maximum soient de 20. Si le total des enregistrements sélectionnés est supérieur à 20, je dois sélectionner 20 enregistrements qui sont répartis uniformément (pas au hasard) sur le total des enregistrements. Il est également important que je sélectionne toujours la première et la dernière valeur de la table lors du tri de la date. Ces enregistrements doivent être insérés en premier et en dernier dans le résultat.Sqlite: Sélection des enregistrements répartis sur les enregistrements totaux
Je sais comment accomplir ceci dans le code mais ce serait parfait pour avoir une requête sqlite qui peut faire la même chose.
La Im requête à l'aide est vraiment simple et ressemble à ceci:
"SELECT value,date,valueid FROM tblvalue WHERE tblvalue.deleted=0 ORDER BY DATE(date)"
Si je par exemple avoir ces enregistrements dans la talbe et de faire un exemple plus facile le résultat maximum que je veux est 5.
id value date
1 10 2010-04-10
2 8 2010-04-11
3 8 2010-04-13
4 9 2010-04-15
5 10 2010-04-16
6 9 2010-04-17
7 8 2010-04-18
8 11 2010-04-19
9 9 2010-04-20
10 10 2010-04-24
Le résultat que je voudrais est uniformément répartie comme ceci:
id value date
1 10 2010-04-10
3 8 2010-04-13
5 10 2010-04-16
7 8 2010-04-18
10 10 2010-04-24
espoir que e xplain ce que je veux, merci!
Que voulez-vous dire par « je dois sélectionner 20 dossiers qui sont répartis sur les dossiers au total "? – SQLighter
Je pense qu'il veut dire randomisé sur l'ensemble, c'est-à-dire ordonné par un facteur aléatoire –
Désolé, je n'étais pas clair, je ne veux pas aléatoire. S'il vous plaît voir la question mise à jour ci-dessus. Merci! – Mrbiggerm