2010-11-11 7 views
0

J'ai une table 'OrderBook'Sql Groupe de requête par

il a champ Oid, symbol, price, qty, buysell

je veux résumer de buy/sell prix et Qty groupe par symbol

+0

@InSane: « ' acheter/prix de sell' » partie est toujours pas assez claire, puisque' price' est un domaine aussi. – zerkms

+0

@zerkms - Yup. Je connais. Je ne peux que formater ce que je comprends :-) L'OP devra clarifier cette partie – InSane

Répondre

2
SELECT SUM(buy), 
     SUM(sell), 
     SUM(price), 
     SUM(qty) 
    FROM OrderBook 
GROUP BY symbol 

Comme vous pouvez le voir - SQL ressemble à un langage naturel et est presque similaire à ce que vous avez demandé dans la question ;-)

+0

Ne pas oublier qté: P – rwilliams

+0

@rwilliams aka r-dub: en fait je n'ai pas bien compris ses exigences, mais ma réponse devrait donner un indice au moins ;-) – zerkms

0

SELEC Symbole T, SOMME (achat), SOMME (vente), SOMME (quantité) À PARTIR DE OrderBook Symbole GROUP BY

Utilisez-le de cette façon, que la requête puisse vous aider jusqu'à un certain point ......... .. à l'intérieur du SUM (tableau_field) écrivez le nom du champ pour lequel vous voulez obtenir la somme.

1

Je pense qu'il s'agit d'un «carnet de commandes»; la table contient probablement des ordres individuels faits. La colonne «acheter/vendre» indique si le commerce était un achat ou une vente; et il est probable que les statistiques requises sont la somme du «prix * quantité» (la valeur des ventes ou des achats) et peut-être aussi la somme des quantités (volume total des actions), regroupées par symbole et achat/vente. Je me demande si l'OID identifie en quelque sorte la date et l'heure de la commande?

Si cela est correct, l'agrégation devrait probablement:

SELECT Symbol, BuySell, 
     SUM(Price * Quantity) AS Value, 
     SUM(Quantity) AS Volume 
    FROM OrderBook 
GROUP BY Symbol, BuySell 
ORDER BY Symbol, BuySell;