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
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)
如何获得带有时间戳的分钟不同值... 就像,如果 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
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)