Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1457 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  opérations sur des alias SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

opérations sur des alias SQL

n°1210609
veryfree
Posté le 29-09-2005 à 10:50:37  profilanswer
 

hello,
 
petit soucis.
j'ai ca
 
select sum(champs) as qte,count(champs2) as participants from table;
 
ca marche mais j'aimerai pouvoir ajouter un 3 em champs correspondant a qte/participants
 
le probleme c'est qu'en faisant l'opération via les alias ca passe pas. est ce que je m y prend mal ?
 
Sinon, deuxieme question,
si je fait  
select sum(champs),count(champs2) ,sum(champs)/count(champs2)  from table;
 
ca repond a mes attentes mais est ce que les calculs (sum et count) sont stockés en cache ou bien les calculs sont refait ?
 
vous en pensez quoi ?
c'est a eviter ?
 
 
Merci


Message édité par veryfree le 29-09-2005 à 11:00:22
mood
Publicité
Posté le 29-09-2005 à 10:50:37  profilanswer
 

n°1210620
betsamee
Asterisk Zeperyl
Posté le 29-09-2005 à 10:57:04  profilanswer
 

je pense qu'il n'y a pas d'autre solution

n°1210621
Beegee
Posté le 29-09-2005 à 10:57:10  profilanswer
 

select sum(champs), count(champs2), sum(champs)/count(champs2)
from table;
 
=> ça devrait marcher et faire ce que tu veux. Je ne comprends pas ta question "est ce que les calculs (sum et count) sont stocké en cache ?".
 
Sinon pour utiliser les alias, il faut en général qu'ils soient dans une sous-requête.
 
Exemple :  
 
select qte, participants, qte/participants qte_moyenne
from (select sum(champs) as qte,count(champs2) as participants from table);
 
edit : la perte de perfs doit être minime avec la sous-requête (par contre le SGBD peut ne pas accepter les sous-requêtes).
C'est intéressant d'utiliser des sous-requêtes et alias pour des raisons de lecture plus simple du code, et maintenance plus facile, par conséquent ça vaut le coup quand les données en alias sont utilisées de nombreuses fois. Dans ton cas ça n'apporte pas grand chose :D

Message cité 1 fois
Message édité par Beegee le 29-09-2005 à 10:59:18
n°1210625
veryfree
Posté le 29-09-2005 à 10:59:14  profilanswer
 

Beegee a écrit :

select sum(champs), count(champs2), sum(champs)/count(champs2)
from table;
 
=> ça devrait marcher et faire ce que tu veux. Je ne comprends pas ta question "est ce que les calculs (sum et count) sont stocké en cache ?".
 


 
je craint juste qu'il calcule la somme 2 fois ( chose que je veux eviter absolument )

Beegee a écrit :


Sinon pour utiliser les alias, il faut en général qu'ils soient dans une sous-requête.
 
Exemple :  
 
select qte, participants, qte/participants qte_moyenne
from (select sum(champs) as qte,count(champs2) as participants from table);


 
je comprend mais dans mon cas ce serai pas possible alors
 
 
merci pour votre aide en tout cas :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  opérations sur des alias SQL

 

Sujets relatifs
definir une clé primaire apres la creation d'une table, en SQLAdditionner les résultat de deux requêtes SQL en access SQL
[SQL] Petit problème -> ...not contained in an aggregate function...probleme installation SQL Server 2000
[SQL Server] Enlever une contrainte IDENTITY d'une table?SQL et VBA
Problème de syntaxe SQL ???Recuperer plusieurs ROWS SQL avec une fonction PHP ?
[SQL Server] Tester si un champ = 0 dans clause SELECT[SQL] Petit problème avec clause SELECT
Plus de sujets relatifs à : opérations sur des alias SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR