我想获取当前或去年每月的总计数,我该怎么做?我尝试从 CURRENT_DATE 变量中提取月份或年份,但这不起作用。
我不知道是否应该使用 date_trunc 还是 extract。我总是遇到语法错误。我使用标准 SQL 语法,而不是 BigQuery 中的旧语法。
SELECT
COUNT (*)
FROM
`mytable`
extract(month from current_date) as grpmonth
WHERE
test = 12
GROUP BY grpmonth
我想要这样的东西:
2020 Count
----------
Jan 1125
Feb 3308
...
Dec 2043
2021 Count
-----------
Jan 544
Feb 107
...
Dec 232
我遇到的一些错误:
Syntax error: Expected end of input but got keyword EXTRACT at
获取当前或去年每月的总数
考虑以下方法
select
extract(year from date_col) year,
extract(month from date_col) month,
count(*) total
from your_table
where extract(year from date_col) > extract(year from current_date) - 2
group by year, month
您编写了错误的 SQL 语法。您应该将摘录放在选择部分中。
SELECT
extract(year from _date) as _year,
extract(month from _date) as _month,
data_source.result
from
UNNEST(GENERATE_DATE_ARRAY('2020-01-01', '2021-12-01', INTERVAL 1 MONTH)) as _date
left join (
SELECT
COUNT (*) as result,
extract(month from current_date) as grpmonth,
extract(year from current_date) as grpyear
FROM
`mytable`
WHERE
test = 12
GROUP BY grpmonth, grpyear
) as data_source on grpyear = extract(year from _date) and _month = extract(month from _date)
您可以自行更改年份范围。
您的查询有语法错误。这应该有效:
SELECT
COUNT (*), EXTRACT(MONTH from current_date) as grpmonth
FROM `mytable`
WHERE
test = 12
GROUP BY grpmonth
ORDER BY grpmonth;
尝试这个查询-
选择提取(年份FROM(日期))AS年份,提取(月份FROM(日期))AS月份,SUM(销售额)AS每月销售额
FROM(数据库.表) 按年、月分组 按年、月排序