2016-10-01 3 views
0

Ich verwende den Abfrage-Composer auf Google BigQuery. Ich möchte die Monate in der richtigen Reihenfolge ausgeben, z. beginnend mit Januar bis Dezember.SQL: Ausgabe von Monatsnamen in der richtigen Reihenfolge

Hier ist meine Frage:

SELECT month, gender, SUM(cost) AS Cost 
FROM [medicare.medicareTable] 
GROUP BY month, gender 
ORDER BY month, gender 

Ohne die ORDER BY über die Monate in völlig zufälliger Reihenfolge waren. Jetzt sind sie alphabetisch, was ein wenig besser ist, aber immer noch nicht das was ich will.

die obige Abfrage verwenden, sieht die Ausgabe wie folgt aus: https://docs.google.com/spreadsheets/d/18r_HhY1jG3Edkj5Nk8gDM_eSQ_1fI6ePHSZuJuoAppE/edit?usp=sharing

Dank an alle, die helfen können.

+0

Ich benutze Google BigQuery. – helpmeplz

Antwort

4

für BigQuery Standard-SQL hilft Ihnen PARSE_DATE() verwenden können. Sie können sehen Supported Format Elements for DATE

WITH m AS (
    SELECT 'January 01 2016' AS d UNION ALL 
    SELECT 'February 01 2016' AS d UNION ALL 
    SELECT 'March 01 2016' AS d 
) 
SELECT d, EXTRACT(month FROM PARSE_DATE('%B %d %Y', d)) AS month_number 
FROM m 
ORDER BY month_number 
+0

@helpmeplz: Ich habe meine Antwort gelöscht. Mikhail Berlyant Antwort ist richtig. –

+0

Hey, ich bekomme diesen Fehler: "Begegnung" "MIT" "WITH" "in Zeile 1, Spalte 1. Erwartete: " – helpmeplz

+0

dies ist für Standard SQL - siehe [Aktivieren von Standard SQL] (https: // cloud.google.com/bigquery/sql-reference/enabling-standard-sql) –

0

Sie können versuchen, die Monatsnummer vom Monatsnamen zu erhalten, und die Sortierung erfolgt in aufsteigender Reihenfolge.

Syntax für SQL Server

select DATEPART(MM,'january 01 2016') -- returns 1 

So können Sie so etwas wie dieses

SELECT month, gender, SUM(cost) AS Cost 
FROM [medicare.medicareTable] 
GROUP BY month, gender 
ORDER BY datepart(MM,month + ' 01 2016'),gender 

Hoffnung versuchen diese

+0

Hey vielen Dank für die Antwort. Ich habe Ihre Anfrage eingegeben und folgende Fehlermeldung erhalten: "Abfrage fehlgeschlagen Fehler: 12.10 - 13.20: Unbekannter Funktionsdatum" – helpmeplz

Verwandte Themen