Mad*_*gde 4 sql google-bigquery
我正在尝试使用列/字段每月(几年)计算巴士行程(包括起点和目的地)的数量TIMESTAMP。我可以按月执行此操作 ( TIMESTAMP_TRUNC(start_date, MONTH)),但我想按月执行此操作。任何帮助表示赞赏。谢谢
您可以使用标准 SQL:
SELECT
FORMAT_DATE('%b-%Y', created_date) mon_year,
COUNT(1) AS `count`
FROM `project.dataset.table`
GROUP BY mon_year
ORDER BY PARSE_DATE('%b-%Y', mon_year)
Run Code Online (Sandbox Code Playgroud)
如果您使用时间戳,则必须将其转换为date
SELECT
FORMAT_DATE('%b-%Y', created_date) mon_year,
COUNT(1) AS `count`
FROM `project.dataset.table`
GROUP BY mon_year
ORDER BY PARSE_DATE('%b-%Y', mon_year)
Run Code Online (Sandbox Code Playgroud)
将产生:
Sep-2020
Run Code Online (Sandbox Code Playgroud)
根据您评论中的示例。不能count在where子句中使用。如果您想对聚合进行过滤,则必须使用having docs。
SELECT TIMESTAMP_TRUNC(start_date, MONTH) AS year_month,
start_station_name,
end_station_name,
count(start_station_name) AS count_start,
FROM bigquery-PUBLIC-data.san_francisco.bikeshare_trips
WHERE start_station_name <> end_station_name
GROUP BY year_month,
start_station_name,
end_station_name
HAVING count(start_station_name) > 10
LIMIT 50
Run Code Online (Sandbox Code Playgroud)