Question a la con : Admettons que vous deviez faire un tableau de stat
: ex sortir le nombre de clients par age : < 30 ans, 30 40ans, 40 50,
et > 50.
Vous faites 4 requetes ? ou 1 requete et tu traite les resultats de la
req avec une boucle ?
La j'ai un tableau de stats a faire, si je suis la premiere methode ca
me ferai 20 requetes... et avec la 2eme methode 5 requetes mais avec
une boucle pour chacune...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Emmanuel Lecoester
a écrit dans le message de news:
Question a la con : Admettons que vous deviez faire un tableau de stat : ex sortir le nombre de clients par age : < 30 ans, 30 40ans, 40 50, et > 50. Vous faites 4 requetes ? ou 1 requete et tu traite les resultats de la req avec une boucle ?
La j'ai un tableau de stats a faire, si je suis la premiere methode ca me ferai 20 requetes... et avec la 2eme methode 5 requetes mais avec une boucle pour chacune...
Quel est selon vs la meilleure methode ?
un fetch en table access full + gestion des ruptures dans les fetchs
en gros un hlp tant que pas endehors selon age cas <30 compteur1++ cas >0 et <40 compteur2++ fin hls fin
(je me pose de ces questions moi des fois ;) )
mais non
<ronando29@gmail.com> a écrit dans le message de
news:1128957939.569040.102880@g43g2000cwa.googlegroups.com...
Question a la con : Admettons que vous deviez faire un tableau de stat
: ex sortir le nombre de clients par age : < 30 ans, 30 40ans, 40 50,
et > 50.
Vous faites 4 requetes ? ou 1 requete et tu traite les resultats de la
req avec une boucle ?
La j'ai un tableau de stats a faire, si je suis la premiere methode ca
me ferai 20 requetes... et avec la 2eme methode 5 requetes mais avec
une boucle pour chacune...
Quel est selon vs la meilleure methode ?
un fetch en table access full + gestion des ruptures dans les fetchs
en gros un
hlp
tant que pas endehors
selon age
cas <30 compteur1++
cas >0 et <40 compteur2++
fin
hls
fin
Question a la con : Admettons que vous deviez faire un tableau de stat : ex sortir le nombre de clients par age : < 30 ans, 30 40ans, 40 50, et > 50. Vous faites 4 requetes ? ou 1 requete et tu traite les resultats de la req avec une boucle ?
La j'ai un tableau de stats a faire, si je suis la premiere methode ca me ferai 20 requetes... et avec la 2eme methode 5 requetes mais avec une boucle pour chacune...
Quel est selon vs la meilleure methode ?
un fetch en table access full + gestion des ruptures dans les fetchs
en gros un hlp tant que pas endehors selon age cas <30 compteur1++ cas >0 et <40 compteur2++ fin hls fin
(je me pose de ces questions moi des fois ;) )
mais non
mat
wrote:
Question a la con : Admettons que vous deviez faire un tableau de stat : ex sortir le nombre de clients par age : < 30 ans, 30 40ans, 40 50, et > 50. Vous faites 4 requetes ? ou 1 requete et tu traite les resultats de la req avec une boucle ?
La j'ai un tableau de stats a faire, si je suis la premiere methode ca me ferai 20 requetes... et avec la 2eme methode 5 requetes mais avec une boucle pour chacune...
Quel est selon vs la meilleure methode ?
(je me pose de ces questions moi des fois ;) )
Bonjour,
faire un test des deux solutions, puisqu'il n'y pas de règles fixes avec des requêtes sur HF. Ce n'est pas trop compliqué, il me semble. Une chose est relativement sure: s'il s'agit d'une requête multifichiers, alors réduire le nombre de requêtes en faveur de boucles POUR TOUS sur le résultat. Puisque les résultats sont en mémoire, les boucles sont bcp plus rapides.
Salutations mat
ronando29@gmail.com wrote:
Question a la con : Admettons que vous deviez faire un tableau de stat
: ex sortir le nombre de clients par age : < 30 ans, 30 40ans, 40 50,
et > 50.
Vous faites 4 requetes ? ou 1 requete et tu traite les resultats de la
req avec une boucle ?
La j'ai un tableau de stats a faire, si je suis la premiere methode ca
me ferai 20 requetes... et avec la 2eme methode 5 requetes mais avec
une boucle pour chacune...
Quel est selon vs la meilleure methode ?
(je me pose de ces questions moi des fois ;) )
Bonjour,
faire un test des deux solutions, puisqu'il n'y pas de règles fixes avec
des requêtes sur HF. Ce n'est pas trop compliqué, il me semble. Une
chose est relativement sure: s'il s'agit d'une requête multifichiers,
alors réduire le nombre de requêtes en faveur de boucles POUR TOUS sur
le résultat. Puisque les résultats sont en mémoire, les boucles sont bcp
plus rapides.
Question a la con : Admettons que vous deviez faire un tableau de stat : ex sortir le nombre de clients par age : < 30 ans, 30 40ans, 40 50, et > 50. Vous faites 4 requetes ? ou 1 requete et tu traite les resultats de la req avec une boucle ?
La j'ai un tableau de stats a faire, si je suis la premiere methode ca me ferai 20 requetes... et avec la 2eme methode 5 requetes mais avec une boucle pour chacune...
Quel est selon vs la meilleure methode ?
(je me pose de ces questions moi des fois ;) )
Bonjour,
faire un test des deux solutions, puisqu'il n'y pas de règles fixes avec des requêtes sur HF. Ce n'est pas trop compliqué, il me semble. Une chose est relativement sure: s'il s'agit d'une requête multifichiers, alors réduire le nombre de requêtes en faveur de boucles POUR TOUS sur le résultat. Puisque les résultats sont en mémoire, les boucles sont bcp plus rapides.
Salutations mat
sebNews
"mat" a écrit dans le message de news:434aca53$
wrote: > Question a la con : Admettons que vous deviez faire un tableau de stat > : ex sortir le nombre de clients par age : < 30 ans, 30 40ans, 40 50, > et > 50. > Vous faites 4 requetes ? ou 1 requete et tu traite les resultats de la > req avec une boucle ? > > La j'ai un tableau de stats a faire, si je suis la premiere methode ca > me ferai 20 requetes... et avec la 2eme methode 5 requetes mais avec > une boucle pour chacune... > > Quel est selon vs la meilleure methode ? > > (je me pose de ces questions moi des fois ;) ) >
Bonjour, Pour moi, une seule requête puis travail en mémoire sur la source de données. ( instruction SELON )
Sébastien
"mat" <NoSPAM-mnobs@bluemail.ch> a écrit dans le message de
news:434aca53$1_2@news.bluewin.ch...
ronando29@gmail.com wrote:
> Question a la con : Admettons que vous deviez faire un tableau de stat
> : ex sortir le nombre de clients par age : < 30 ans, 30 40ans, 40 50,
> et > 50.
> Vous faites 4 requetes ? ou 1 requete et tu traite les resultats de la
> req avec une boucle ?
>
> La j'ai un tableau de stats a faire, si je suis la premiere methode ca
> me ferai 20 requetes... et avec la 2eme methode 5 requetes mais avec
> une boucle pour chacune...
>
> Quel est selon vs la meilleure methode ?
>
> (je me pose de ces questions moi des fois ;) )
>
Bonjour,
Pour moi, une seule requête
puis travail en mémoire sur la source de données.
( instruction SELON )
wrote: > Question a la con : Admettons que vous deviez faire un tableau de stat > : ex sortir le nombre de clients par age : < 30 ans, 30 40ans, 40 50, > et > 50. > Vous faites 4 requetes ? ou 1 requete et tu traite les resultats de la > req avec une boucle ? > > La j'ai un tableau de stats a faire, si je suis la premiere methode ca > me ferai 20 requetes... et avec la 2eme methode 5 requetes mais avec > une boucle pour chacune... > > Quel est selon vs la meilleure methode ? > > (je me pose de ces questions moi des fois ;) ) >
Bonjour, Pour moi, une seule requête puis travail en mémoire sur la source de données. ( instruction SELON )
Sébastien
ronando29
Merci pr les reponses. nb : la bdd etait MySQL (j'avais oublié de préciser)
Merci pr les reponses.
nb : la bdd etait MySQL (j'avais oublié de préciser)
Merci pr les reponses. nb : la bdd etait MySQL (j'avais oublié de préciser)
ManuPavy
a écrit :
Merci pr les reponses. nb : la bdd etait MySQL (j'avais oublié de préciser)
Moi, je ferai tout par une seule requete :
select "moins de 30", count(*) from table where table.age < 30 union "entre 30 et 40", count(*) from table where table.age >= 30 and table.age < 40 union ...
-- Manu
ronando29@gmail.com a écrit :
Merci pr les reponses.
nb : la bdd etait MySQL (j'avais oublié de préciser)
Moi, je ferai tout par une seule requete :
select "moins de 30", count(*) from table
where table.age < 30
union "entre 30 et 40", count(*) from table
where table.age >= 30
and table.age < 40
union ...
Merci pr les reponses. nb : la bdd etait MySQL (j'avais oublié de préciser)
Moi, je ferai tout par une seule requete :
select "moins de 30", count(*) from table where table.age < 30 union "entre 30 et 40", count(*) from table where table.age >= 30 and table.age < 40 union ...
-- Manu
ManuPavy
a écrit : > Merci pr les reponses. > nb : la bdd etait MySQL (j'avais oublié de préciser) >
Moi, je ferais tout par une seule requete :
select "moins de 30", count(*) from table where table.age < 30 union select "entre 30 et 40", count(*) from table where table.age >= 30 and table.age < 40 union select "entre 40 et 50", count(*) from table where table.age >= 40 and table.age < 50 union select "plus de 50", count(*) from table where table.age > 50
-- Manu
ronando29@gmail.com a écrit :
> Merci pr les reponses.
> nb : la bdd etait MySQL (j'avais oublié de préciser)
>
Moi, je ferais tout par une seule requete :
select "moins de 30", count(*) from table
where table.age < 30
union
select "entre 30 et 40", count(*) from table
where table.age >= 30
and table.age < 40
union
select "entre 40 et 50", count(*) from table
where table.age >= 40
and table.age < 50
union
select "plus de 50", count(*) from table
where table.age > 50
a écrit : > Merci pr les reponses. > nb : la bdd etait MySQL (j'avais oublié de préciser) >
Moi, je ferais tout par une seule requete :
select "moins de 30", count(*) from table where table.age < 30 union select "entre 30 et 40", count(*) from table where table.age >= 30 and table.age < 40 union select "entre 40 et 50", count(*) from table where table.age >= 40 and table.age < 50 union select "plus de 50", count(*) from table where table.age > 50
-- Manu
Manu
"ManuPavy" wrote in message news:dinrid$ddv$
a écrit : > Merci pr les reponses. > nb : la bdd etait MySQL (j'avais oublié de préciser) >
Moi, je ferais tout par une seule requete :
select "moins de 30", count(*) from table where table.age < 30 union select "entre 30 et 40", count(*) from table where table.age >= 30 and table.age < 40 union select "entre 40 et 50", count(*) from table where table.age >= 40 and table.age < 50 union select "plus de 50", count(*) from table where table.age > 50
sans vouloir jouer les puristes : 4 unions : 4 parcours de la table => _index sur age_ fortement recommandé mais c'est pas le genre de colonne habituellement indexée 4 union : un traitement de dédoublonnage en plus => utilisation de _union all_ recommommandé surtout que les ensembles ne se superposent pas
"ManuPavy" <manuel.pavy@onecert.fr> wrote in message
news:dinrid$ddv$3@news.cict.fr...
ronando29@gmail.com a écrit :
> Merci pr les reponses.
> nb : la bdd etait MySQL (j'avais oublié de préciser)
>
Moi, je ferais tout par une seule requete :
select "moins de 30", count(*) from table
where table.age < 30
union
select "entre 30 et 40", count(*) from table
where table.age >= 30
and table.age < 40
union
select "entre 40 et 50", count(*) from table
where table.age >= 40
and table.age < 50
union
select "plus de 50", count(*) from table
where table.age > 50
sans vouloir jouer les puristes :
4 unions : 4 parcours de la table => _index sur age_ fortement recommandé
mais c'est pas le genre de colonne habituellement indexée
4 union : un traitement de dédoublonnage en plus => utilisation de _union
all_ recommommandé surtout que les ensembles ne se superposent pas
a écrit : > Merci pr les reponses. > nb : la bdd etait MySQL (j'avais oublié de préciser) >
Moi, je ferais tout par une seule requete :
select "moins de 30", count(*) from table where table.age < 30 union select "entre 30 et 40", count(*) from table where table.age >= 30 and table.age < 40 union select "entre 40 et 50", count(*) from table where table.age >= 40 and table.age < 50 union select "plus de 50", count(*) from table where table.age > 50
sans vouloir jouer les puristes : 4 unions : 4 parcours de la table => _index sur age_ fortement recommandé mais c'est pas le genre de colonne habituellement indexée 4 union : un traitement de dédoublonnage en plus => utilisation de _union all_ recommommandé surtout que les ensembles ne se superposent pas
ManuPavy
Manu a écrit :
"ManuPavy" wrote in message news:dinrid$ddv$
a écrit : > Merci pr les reponses. > nb : la bdd etait MySQL (j'avais oublié de préciser) >
Moi, je ferais tout par une seule requete :
select "moins de 30", count(*) from table where table.age < 30 union select "entre 30 et 40", count(*) from table where table.age >= 30 and table.age < 40 union select "entre 40 et 50", count(*) from table where table.age >= 40 and table.age < 50 union select "plus de 50", count(*) from table where table.age > 50
sans vouloir jouer les puristes : 4 unions : 4 parcours de la table => _index sur age_ fortement recommandé mais c'est pas le genre de colonne habituellement indexée 4 union : un traitement de dédoublonnage en plus => utilisation de _union all_ recommommandé surtout que les ensembles ne se superposent pas
Oui, mais c'est mieux que 4 requetes + du code derriere.
Sinon : select case when table.age < 30 then "inf30" when (table.age >= 30 and table.age <40) then "30-40" when (table.age >= 40 and table.age <50) then "30-40" when table.age > 50 then "sup50" end as cat_age, count(*) from table group by cat_age
-- Manu
Manu a écrit :
"ManuPavy" <manuel.pavy@onecert.fr> wrote in message
news:dinrid$ddv$3@news.cict.fr...
ronando29@gmail.com a écrit :
> Merci pr les reponses.
> nb : la bdd etait MySQL (j'avais oublié de préciser)
>
Moi, je ferais tout par une seule requete :
select "moins de 30", count(*) from table
where table.age < 30
union
select "entre 30 et 40", count(*) from table
where table.age >= 30
and table.age < 40
union
select "entre 40 et 50", count(*) from table
where table.age >= 40
and table.age < 50
union
select "plus de 50", count(*) from table
where table.age > 50
sans vouloir jouer les puristes :
4 unions : 4 parcours de la table => _index sur age_ fortement recommandé
mais c'est pas le genre de colonne habituellement indexée
4 union : un traitement de dédoublonnage en plus => utilisation de _union
all_ recommommandé surtout que les ensembles ne se superposent pas
Oui, mais c'est mieux que 4 requetes + du code derriere.
Sinon :
select case
when table.age < 30 then "inf30"
when (table.age >= 30 and table.age <40) then "30-40"
when (table.age >= 40 and table.age <50) then "30-40"
when table.age > 50 then "sup50"
end as cat_age, count(*)
from table
group by cat_age
a écrit : > Merci pr les reponses. > nb : la bdd etait MySQL (j'avais oublié de préciser) >
Moi, je ferais tout par une seule requete :
select "moins de 30", count(*) from table where table.age < 30 union select "entre 30 et 40", count(*) from table where table.age >= 30 and table.age < 40 union select "entre 40 et 50", count(*) from table where table.age >= 40 and table.age < 50 union select "plus de 50", count(*) from table where table.age > 50
sans vouloir jouer les puristes : 4 unions : 4 parcours de la table => _index sur age_ fortement recommandé mais c'est pas le genre de colonne habituellement indexée 4 union : un traitement de dédoublonnage en plus => utilisation de _union all_ recommommandé surtout que les ensembles ne se superposent pas
Oui, mais c'est mieux que 4 requetes + du code derriere.
Sinon : select case when table.age < 30 then "inf30" when (table.age >= 30 and table.age <40) then "30-40" when (table.age >= 40 and table.age <50) then "30-40" when table.age > 50 then "sup50" end as cat_age, count(*) from table group by cat_age
-- Manu
Manu
> Sinon : select case when table.age < 30 then "inf30" when (table.age >= 30 and table.age <40) then "30-40" when (table.age >= 40 and table.age <50) then "30-40" when table.age > 50 then "sup50" end as cat_age, count(*) from table group by cat_age
Voici ce que j'avais proposé à l'époque mais si ton code fonctionne c'est plus propre...
un fetch en table access full + gestion des ruptures dans les fetchs
en gros un hlp tant que pas endehors selon age cas <30 compteur1++ cas >0 et <40 compteur2++ fin hls fin
> Sinon :
select case
when table.age < 30 then "inf30"
when (table.age >= 30 and table.age <40) then "30-40"
when (table.age >= 40 and table.age <50) then "30-40"
when table.age > 50 then "sup50"
end as cat_age, count(*)
from table
group by cat_age
Voici ce que j'avais proposé à l'époque mais si ton code fonctionne c'est
plus propre...
un fetch en table access full + gestion des ruptures dans les fetchs
en gros un
hlp
tant que pas endehors
selon age
cas <30 compteur1++
cas >0 et <40 compteur2++
fin
hls
fin
> Sinon : select case when table.age < 30 then "inf30" when (table.age >= 30 and table.age <40) then "30-40" when (table.age >= 40 and table.age <50) then "30-40" when table.age > 50 then "sup50" end as cat_age, count(*) from table group by cat_age
Voici ce que j'avais proposé à l'époque mais si ton code fonctionne c'est plus propre...
un fetch en table access full + gestion des ruptures dans les fetchs
en gros un hlp tant que pas endehors selon age cas <30 compteur1++ cas >0 et <40 compteur2++ fin hls fin