Regroupement par MOIS en SQL
Je suis en train de réunir une table qui va prendre une date complète, AAAA-MM-JJ, sortir que les informations du mois, puis du groupe le mois ensemble, comme des lignes individuelles.
J'ai essayé d'utiliser le MONTH(DATE)
de commande, avec un Group by
et Order By
commande, et je reçois le mois retournés pour les 4 ans sur la table. Je donne en retour, 48 lignes, énumérées de 1 à 12, répéter 4 fois. Je veux obtenir 1 de retour de 1 à 12 dans l'ordre.
Voici le code que j'ai jusqu'ici.
select MONTH(DATE) As "Month"
from DW******.SL****
Group By DATE
Order by DATE
Juste commencé à l'aide de SQL, donc je m'excuse pour la question simple.
Si quelqu'un pouvait me donner un coup de main. C'est Db pour je et que j'allais utiliser CONVERT
mais qui ne fonctionne pas avec notre serveur.
OriginalL'auteur William | 2013-01-11
Vous devez vous connecter pour publier un commentaire.
vous pouvez pas utiliser du mois(date) dans votre groupe?
plus précisément, le problème est que vous avez été regroupement par
DATE
au lieu deMONTH(DATE)
, de la commande par n'a rien à voir avec le nombre de lignes retournéesOriginalL'auteur Farzad
Vous avez besoin de groupe par
MONTH(Date)
, pas de DATEJe pense que son point est de groupe par
MONTH(DATE)
au lieu de la pleineDATE
, ce qui est correctIl ne parle pas le cas de la parole.
Correct, je m'en excuse. EricZ a droit. J'avais essayé MOIS(DATE) dans le Groupe Par instruction en une seule fois. J'ai oublié que j'en avais besoin dans l'Ordre en tant que bien. Très apprécié.
OriginalL'auteur EricZ
Une autre approche peut vous aider dans général que vous obtenez dans les questions plus complexes qui vous permet de vous mentalement briser les choses en morceaux (ou les étapes).
Il peut ressembler à quelque chose comme ceci:
Où x désigne la fullselect1, et x est utilisé comme un tableau dans fullselect2. Vous pouvez penser ce que l'étape 1 et l'étape 2, bien que l'optimiseur peut accomplir cela, cependant il choisit.
Dans votre cas, ici, on pourrait dire
Ce concept, bien que pas nécessaire, ici, d'échelles très bien, et peut vous aider à écrire des requêtes complexes par le découper en plusieurs parties qui sont plus faciles à comprendre.
Si vous regardez dans le manuel de référence (je vais vous donner un lien vers le centre d'information) IBM fait référence à ce qu'une Expression de Table Commune. [CTE ]
OriginalL'auteur WarrenT
Si vous avez besoin de Mois de janvier, février, Mars, etc, l'utilisation en dessous de requête
SÉLECTIONNEZ MONTHNAME (CURRENT_TIMESTAMP) auprès des clients;
OriginalL'auteur Vinayak Dornala