Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mysql compter sur les x premiers

3 réponses
Avatar
Roumégou Eric
Bonjour

en mysql natif j'ai besoin de compter dans une requete sur les x
premiers de ma requete. Je comptais sur le LIMIT mais cela ne convient
pas

par exemple x=15, cela me donnerait
select sum(case BNK_CAT02 when '1' then 1 else 0) as nbtype1,
sum(case BNK_CAT02 when '2' then 1 else 0) as nbtype2,
sum(case BNK_CAT02 when '3' then 1 else 0) as nbtype3
from matable
where key_id=12345
limit 15

mais le limit s'applique sur les tuples retournés (donc là il m'en
retournerait max 15 alors que de toutes façons cela ne retourne qu'une
ligne).

En fait j'ai besoin de compter le nombre de type 1,2 et 3 parmis les 15
premiers contrats du compte key_id=12345. Peut être en a-t-il une
centaine; seul m'interesse ses x premiers contrats.


Quel est la solution pour avoir ça en une requête.
MErci de vos réponses.

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)

3 réponses

Avatar
Roumégou Eric
Roumégou Eric avait prétendu :
Bonjour

en mysql natif j'ai besoin de compter dans une requete sur les x premiers de
ma requete. Je comptais sur le LIMIT mais cela ne convient pas

par exemple x, cela me donnerait
select sum(case BNK_CAT02 when '1' then 1 else 0) as nbtype1,
sum(case BNK_CAT02 when '2' then 1 else 0) as nbtype2,
sum(case BNK_CAT02 when '3' then 1 else 0) as nbtype3
from matable
where key_id345
limit 15

mais le limit s'applique sur les tuples retournés (donc là il m'en
retournerait max 15 alors que de toutes façons cela ne retourne qu'une
ligne).

En fait j'ai besoin de compter le nombre de type 1,2 et 3 parmis les 15
premiers contrats du compte key_id345. Peut être en a-t-il une centaine;
seul m'interesse ses x premiers contrats.


Quel est la solution pour avoir ça en une requête.
MErci de vos réponses.



hum j'ai bien une 1ere idée mais c'est un peu sale

en rajoutant
where contrat_id in (select contrat_id from matable where key_id345
limit 15)

avez vous mieux ?

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Firetox
Bonjour,

en utilisatn un sous requete comme table

select * from
(select * from MaTable limit 15) as tmp

fonctionne tres bien tu peux donc dans le premier select faire des count et
autre du type

select cout(tmp.type) from
(select * from MaTable limit 15) as tmp

cordialement


en utilisant la requete
"Roumégou Eric" a écrit dans le message de
news:
Roumégou Eric avait prétendu :
Bonjour

en mysql natif j'ai besoin de compter dans une requete sur les x premiers
de ma requete. Je comptais sur le LIMIT mais cela ne convient pas

par exemple x, cela me donnerait
select sum(case BNK_CAT02 when '1' then 1 else 0) as nbtype1,
sum(case BNK_CAT02 when '2' then 1 else 0) as nbtype2,
sum(case BNK_CAT02 when '3' then 1 else 0) as nbtype3
from matable
where key_id345
limit 15

mais le limit s'applique sur les tuples retournés (donc là il m'en
retournerait max 15 alors que de toutes façons cela ne retourne qu'une
ligne).

En fait j'ai besoin de compter le nombre de type 1,2 et 3 parmis les 15
premiers contrats du compte key_id345. Peut être en a-t-il une
centaine; seul m'interesse ses x premiers contrats.


Quel est la solution pour avoir ça en une requête.
MErci de vos réponses.



hum j'ai bien une 1ere idée mais c'est un peu sale

en rajoutant
where contrat_id in (select contrat_id from matable where key_id345
limit 15)

avez vous mieux ?

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)


Avatar
Roumégou Eric
Firetox avait soumis l'idée :
Bonjour,

en utilisatn un sous requete comme table

select * from
(select * from MaTable limit 15) as tmp

fonctionne tres bien tu peux donc dans le premier select faire des count et
autre du type

select cout(tmp.type) from
(select * from MaTable limit 15) as tmp

cordialement




super
Merci frederic
ça marche.

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)