【发布时间】:2014-06-05 10:17:12
【问题描述】:
如何通过选择不同的日期来获取特定日期的总数。 例如: 记录包含从“2014-04-01”到日期。每个日期包含多个具有不同 IST 时间的记录。
如何获取每个日期的总计数?
【问题讨论】:
-
放一些示例代码和预期的输出。以便其他人能够理解。
标签: postgresql
如何通过选择不同的日期来获取特定日期的总数。 例如: 记录包含从“2014-04-01”到日期。每个日期包含多个具有不同 IST 时间的记录。
如何获取每个日期的总计数?
【问题讨论】:
标签: postgresql
根据你想要的表结构和结果,查询应该看起来像这样
SELECT DATE(date_column), COUNT(*)
FROM tablename
WHERE date_column IN (your_date_list)
GROUP BY date(date_column);
【讨论】:
看看下面sql(我没测试过)
SELECT date_column, COUNT(*)
FROM tablename
WHERE date_column BETWEEN date_column AND current_date
GROUP BY to_date(date_column::text,'YYYY-MM-DD')
【讨论】:
date 列转换为字符串,然后将其转换回date 没有任何意义(此外,由于您依赖隐式日期格式,因此编码风格非常糟糕)。如果您想从timestamp 列中删除潜在的时间部分,您应该使用date_trunc() 或将timestamp 转换为date(参见chetan 的答案)。另外:您需要在选择列表中使用与group by 子句中相同的表达式。