Postgresql 不同语句

Postgresql Distinct Statement

如何获得带有时间戳的分钟不同值... 就像,如果 table 包含 1 分钟,那里有 100 条记录......所以我想要每分钟存在或不存在的记录数...... 例如,

SELECT DISTINCT(timestamp) FROM customers WHERE DATE(timestamp) = CURRENT_DATE

结果 应该是..like

timestamp         record
30-12-2019 11:30  5
30-12-2019 11:31  8

一个选项是 ::date 转换 timestamp 列,包括 GROUP BY :

SELECT timestamp, count(*)
  FROM tab
 WHERE timestamp::date = current_date
GROUP BY timestamp 

Demo for current day

timestamp::date 可能会像您的情况一样替换为 date(timestamp)

更新:如果table包含精确到微秒的数据,那么

SELECT to_char(timestamp,'YYYY-MM-DD HH24:MI'), count(*)
  FROM tab
 WHERE date(timestamp) = current_date
 GROUP BY to_char(timestamp,'YYYY-MM-DD HH24:MI')

可以考虑。

尝试如下操作:

SELECT DATE_TRUNC('minute', timestamp) as timestamp, COUNT(*) as record
FROM customers
WHERE DATE(timestamp) = CURRENT_DATE
GROUP BY DATE_TRUNC('minute', timestamp)
ORDER BY DATE_TRUNC('minute', timestamp)