- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
简短而简单,我想获得一个唯一时间列表及其计数代表。
SELECT DISTINCT(date_trunc('hour', occurred)) as time, COUNT(*)
FROM log
WHERE occurred BETWEEN '2014-01-01 00:00' AND '2014-01-01 23:59'
GROUP BY occurred;
这行不通,因为我得到的结果比 24 多得多。
所以我继续尝试:
SELECT DISTINCT(occurred), COUNT(*)
FROM log
WHERE occurred BETWEEN .. AND ..
GROUP BY date_trunc('hour', occurred);
这是一个无效的语法,显然我只是即兴发挥,因此我需要帮助。如何解决这个问题?
最佳答案
这里根本不需要DISTINCT
。
如果您只对发生任何事情的“时间”列表感兴趣(适用于任何时间范围):
SELECT date_trunc('hour', occurred) AS hour, COUNT(*) AS ct
FROM log
WHERE occurred >= '2014-01-01 0:0'
AND occurred < '2014-01-02 0:0' -- do not use between for this
GROUP BY 1
ORDER BY 1;
BETWEEN
包括上限和下限,这通常不适用于时间戳范围:
如果超过一个小时没有任何反应怎么办?如果您仍然希望结果中有几小时没有事件的行(忽略此变体中的日期!):
SELECT hour, COUNT(l.occurred) AS ct
FROM generate_series (0,23) h(hour)
LEFT JOIN log l ON occurred >= '2014-01-01 0:0'
AND occurred < '2014-01-02 0:0' -- do not use between for this
AND EXTRACT(hour FROM occurred)::int = h.hour
GROUP BY hour
ORDER BY hour;
generate_series()
提供每天的完整小时数。LEFT JOIN
保留所有这些。
只计算实际的日志条目。
关于sql - 对列值的更改 date_trunc 进行不同搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26969650/
我试图在 SQL 语句中使用 Date_Trunc for MONTH 函数,但不知何故它对我不起作用。我正在尝试提取 2019 年 4 月 1 日之后发生的条目。Redshift 数据库中的原始日期
我试图在 SQL 语句中使用 Date_Trunc for MONTH 函数,但不知何故它对我不起作用。我正在尝试提取 2019 年 4 月 1 日之后发生的条目。Redshift 数据库中的原始日期
postgresql 有 date_trunc 可以将时间戳值截断为特定单位,例如小时 或分钟。我想知道是否有任何内置函数可以让我截断到 10 分钟? 我知道一个技巧是将时间戳转换为纪元,做一些数学运
尝试从 Legacy 表中获取每月汇总数据。意思是日期列是字符串: amount date_create 100 2018-01-05 200 2018-02-03 300
我将如何按月获得 date_trunc? 会是这样吗? SELECT date_trunc('month', l_date) month FROM this_table GROUP B
我想在 date_trunc 中添加我的 i 变量。我的 i 变量的值为 10。这是我的一段代码: date_trunc('month', now()) - interval 'i month' 错
我正在尝试在我的 DATE_TRUNC 函数中自定义时间范围,而不是典型的 DATE_TRUNC('小时', user.created_at) 理想情况下,我想要一些类似的东西 DATE_TRUNC(
几年前我听说在 sql 中截断日期不是一个好习惯。是真的吗? 我需要从“yyyy-MM-dd”格式的表中获取日期类型列的值,日期当前以“yyyy-MM-dd hh:mm:ss”格式存储在表中 最佳答案
简短而简单,我想获得一个唯一时间列表及其计数代表。 SELECT DISTINCT(date_trunc('hour', occurred)) as time, COUNT(*) FROM log
我正在使用内置的 PostgreSQL 函数 date_trunc() 来聚合时间窗口,如下所示: SELECT max(time) as time, COUNT(*) as ticks FROM s
我需要使用 date_trunc 函数每两周进行一次分组。 但是,该函数只有日、周 和月 选项。有谁知道怎么做吗? 在我一周的代码之上: (date_trunc('week', CAST((CAST(
在将截断字段与 date_trunc() 进行比较后从数据库中检索记录时,我遇到了一个奇怪的问题. 此查询不返回任何数据: select id from my_db_log where date_t
我正在尝试将某个月的几个日期截断到一周的开始,但从上个月开始的日期除外。 示例: 2012 年 12 月 5 日星期三应截断为 2012 年 12 月 3 日星期一 2012 年 12 月 1 日星期
下面的查询 SELECT the_date FROM date_trunc('day', timestamp with time zone '2001-01-1 00:00:00+010
所以我在 Redshift 数据库上遇到了以下奇怪的行为。 以下查询按预期运行,将当前时间戳截断为月份: select date_trunc('month', now()) -- returns 20
星期五下午,我被炸了。所以 SQL 爱好者如何在 PostgreSQL 中采用以下 WHERE 子句并将其转换为 SQLite3 而不使用编译扩展: WHERE DATE_TRUNC('day',
我正在尝试使用商店的时区查询商店的订单和 date_trunc 它的 inserted_at。 以下有效。 shop |> Ecto.assoc(:orders) |> select([o], fra
可在此处找到 date_truc 的有效参数列表: https://www.postgresql.org/docs/10/functions-datetime.html#FUNCTIONS-DATET
我正在开展一个项目,其中财政年度按三个月衡量,尽管听起来很奇怪,但由于国家/地区的规定,每个三个月都是从每月的第 10 天而不是第 1 天开始计算的。因此,第一个三个月被认为是从 1 月 10 日开始
我正在尝试检索数据以进行统计,我正在使用 mySQL,但我无法使以下功能正常工作 - postgreSQL 正在工作。 我想检索上个月的请求并计算每天的新请求数量。 postgreSQL SELECT
我是一名优秀的程序员,十分优秀!