按年份划分的CARTO Postgres频率表

时间:2020-11-09 19:59:47

标签: postgresql

我对查询PostgresSQL非常陌生,感谢您的帮助。我有一张桌子,上面有日期like such for 2019

https://phl.carto.com/api/v2/sql?q=SELECT permitissuedate FROM permits WHERE date_part('year', permitissuedate) = 2019

我只是想按年份列出记录的频率表,但是无法弄清楚我的错误是与Postgres还是API的所有者CARTO有关。我的理解是,我需要使用date_trunc将时间戳转换为年份,计算这些年份,然后group_by转换年份字段。以下是我一团糟的例子。任何帮助将不胜感激。

https://phl.carto.com/api/v2/sql?q=SELECT permitissuedate count(date_trunc('year', permitissuedate)) from PERMITS GROUP BY date_trunc('year', permitissuedate))

1 个答案:

答案 0 :(得分:1)

原始查询:

SELECT extract(year from permitissuedate) as year, count(*) 
from PERMITS 
GROUP BY year order by year;

URL:

https://phl.carto.com/api/v2/sql?q=SELECT extract(year from permitissuedate) as year, count(*) from PERMITS GROUP BY year order by year

请参见demo

修改

  • 在这种情况下,我更喜欢extract(year from permitissuedate)胜过date_trunc,只是因为它返回的是数字而不是时间戳;
  • count(1)类似于count(*),算一号-每组中的记录数。您可以使用其中任何一个;
  • GROUP BY 1是“按第一选择表达式分组”的缩写,即GROUP BY extract(year from permitissuedate);
  • order by 1类似,“按第一个选择表达式排序”。

您可以绕开ORDER BY year,因为yearextract(year from permitissuedate)的别名。

相关问题