Oracle SQL查询计数按时间戳子字符串分组

Oracle SQL查询计数按时间戳子字符串分组,sql,oracle,count,group-by,substring,Sql,Oracle,Count,Group By,Substring,给定一个具有字符串“timestamps”(yyyymmddhhmmssss格式)列的表,我想将前8个字符作为子字符串,并获得具有该子字符串的行数,对结果进行分组 样本数据 TIMESTAMP 20100802123456123 20100803123456123 20100803123456123 20100803123456123 20100804123456123 20100805123456123 20100805123456123 20100805123456123 201008051

给定一个具有字符串“timestamps”(yyyymmddhhmmssss格式)列的表,我想将前8个字符作为子字符串,并获得具有该子字符串的行数,对结果进行分组

样本数据

TIMESTAMP
20100802123456123
20100803123456123
20100803123456123
20100803123456123
20100804123456123
20100805123456123
20100805123456123
20100805123456123
20100805123456123
20100806123456123
20100807123456123
20100807123456123
…以及预期结果

SUBSTRING, COUNT
20100802, 1
20100803, 3
20100804, 1
20100805, 4
20100806, 1
20100807, 2

我知道这应该很容易,但我现在运气不好。

我没有可以测试的数据库,但您似乎正在寻找它

select
  substr(timestamp, 1, 8),
  count(*)
from
  my_table
group by
  substr(timestamp, 1, 8);

如果您将其存储为
DATE
,那么您可以使用
trunc(DATE\u列)
我认为这可能会奏效。非常感谢你。我试图将substring()作为YMD,然后按YMD分组。