我在Google BigQuery上使用查询编辑器。 我想以正确的顺序输出月份,例如从1月开始,到12月结束。
这是我的问题:
SELECT month, gender, SUM(cost) AS Cost
FROM [medicare.medicareTable]
GROUP BY month, gender
ORDER BY month, gender
如果没有上面的ORDER BY
,那么月份就是完全随机的。现在他们是字母表,这是一个更好但仍然不是我想要的。
使用上述查询,输出如下所示:https://docs.google.com/spreadsheets/d/18r_HhY1jG3Edkj5Nk8gDM_eSQ_1fI6ePHSZuJuoAppE/edit?usp=sharing
感谢任何可以提供帮助的人。
答案 0 :(得分:5)
对于BigQuery Standard SQL,您可以使用PARSE_DATE()。您可以看到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
答案 1 :(得分:0)
您可以尝试从月份名称获取月份编号,并按升序排序。
SQL Server语法
select DATEPART(MM,'january 01 2016') -- returns 1
所以你可以尝试这样的事情
SELECT month, gender, SUM(cost) AS Cost
FROM [medicare.medicareTable]
GROUP BY month, gender
ORDER BY datepart(MM,month + ' 01 2016'),gender
希望这有帮助