2013-04-17 5 views
2

J'ai des données sur les ventes stockées dans une base de données. Le champ sales_date contient la date à laquelle la vente a eu lieu. Je veux extraire ces données groupées par mois, de sorte que j'obtiendrai les données agrégées pour Jan, Fév, etc. Y at-il une manière que je peux faire ceci sans devoir extraire les données entières et puis le faire manuellement?Obtention du champ Mois à partir de la date - KDB

Répondre

2

Quelque chose comme ce qui suit devrait fonctionner. Si les données sont partitionnées sur le disque, n'oubliez pas d'inclure la partition dans la clause where.

q)tbl:([]dt:20?(2013.01.01;2013.02.01;2013.01.03);sales:20?100000) 
q)select sum sales by `month$dt from tbl 
dt  | sales 
-------| ------ 
2013.01| 701075 
2013.02| 298200 
q)select avg sales by `month$dt from tbl 
dt  | sales 
-------| -------- 
2013.01| 50076.79 
2013.02| 49700 
+0

Merci, ce qui précède a parfaitement fonctionné. Aussi juste faire sélectionnez Ventes: la somme des ventes par salesdate.month de la table a également travaillé pour moi. – Mancunia89

1

Vous pouvez également utiliser le formulaire plus simple:

q)t:([] date:10?.z.Z)                 
q)select date.month from t                
month 
------- 
2013.10 
2013.08 
2004.09 
2010.03 
... 
Questions connexes