postgresql - 每月计数 PostgreSQL 给几个月
问题描述
我为这样的客户准备了一张桌子
cust_id | date_signed_up | location_id
-----------------------------------------
1 | 2019/01/01 | 1
2 | 2019/03/05 | 1
3 | 2019/06/17 | 1
我需要的是每月计数,但即使是 0 也有月份。例如:
monthly_count | count
-------------------------
Jan | 1
Feb | 0
Mar | 1
Apr | 0
(月份可以是数字)
现在我做了这个查询:
SELECT date_trunc('MONTH', (date_signed_up::date)) AS monthly, count(customer_id) AS count FROM customer
WHERE group_id = 1
GROUP BY monthly
ORDER BY monthly asc
但它只给我几个月的信息,跳过那些为零的信息。即使他们有或没有信息,我怎么能得到所有的月份。
解决方案
您需要一份月份清单。
SELECT a.month , count( y.cust_id )
FROM allMonths a
LEFT JOIN yourTable y
ON a.month = date_trunc('MONTH', (date_signed_up::date))
GROUP BY a.month
推荐阅读
- python - 模拟 CTRL+C 停止 ADB logcat -v time
- node.js - 锁定手机时如何防止 socket.io 断开连接事件?(Node.js、socket.io)
- r - 在R中将一列与其他列相乘
- python - 在 GCP VM 上使用请求 python 抓取时缺少一些标记 HTML
- javascript - Visual Code Studio 和 Debian Webserver 中的 Ajax
- angular - 如果我单击 mat-dialog 中的 un submit-button,如何取消选中 mat-checkbox
- javascript - TypeError:无法读取未定义 javascript 错误的属性“”
- python - 如何使用ctypes将uint8_t二维数组转换为C程序双指针
- javascript - 如何在条件语句中使用钩子?
- git - 将代码推送到 repo 中不存在的分支