按天获得不同的列数

时间:2016-06-21 04:11:18

标签: oracle

我使用的是Oracle 12c,我需要获取每天唯一用户名行的数量。目前,下表中有多行在同一天具有相同的用户名(date_created)。

LOGIN_HISTORY
----------------
id (unique random generated long)
date_created (timestamp)
username (var char)

1 个答案:

答案 0 :(得分:1)

在下面的查询中,我使用日期,月份和年份进行分组,这是唯一标识date_created列每一天所必需的。我使用COUNT(DISTINCT username)来确定给定日期的唯一用户名的数量。

SELECT TO_CHAR(date_created, 'DD') DAY,
       TO_CHAR(date_created, 'MM') MONTH,
       TO_CHAR(date_created, 'YYYY') YEAR,
       COUNT(DISTINCT username) AS userCount
FROM LOGIN_HISTORY
GROUP BY TO_CHAR(date_created, 'DD'),
         TO_CHAR(date_created, 'MM'),
         TO_CHAR(date_created, 'YYYY')