我知道必须有一个简单的方法来做到这一点,但我画了一个空白。我正在看三个领域; CustomerID,Code,CodeDate
当代码进入客户ID时,它会获得代码日期。我在日期范围内按客户ID查找代码计数,但具有不同的日期。
ID Date Code
ABC 1/2/17 XYZ
ABC 1/3/17 XYZ
ABC 1/4/17 XYZ
ABC 1/4/17 XYZ
ABC 1/5/17 XYZ
在这种情况下有5条记录,但我想要显示最终结果
ID CodeCount
ABC 4
由于1/4重复。
非常感谢所有帮助!
答案 0 :(得分:1)
试试这个
SELECT Id AS [Type],
COUNT(DISTINCT date) AS Count
FROM table
GROUP BY Id
答案 1 :(得分:0)
您需要在count(distinct)中的Date列上使用Trunc()来将两个日期视为相同。请查看此查询的输出。
SELECT dt "Date" ,
COUNT( DISTINCT dt2 ) OVER () c_dtime ,
COUNT( DISTINCT TRUNC(dt2) ) OVER () c_date FROM
( SELECT TO_CHAR(SYSDATE, 'MM/DD/YYYY HH24:MI:SS' ) dt , SYSDATE dt2 FROM DUAL
UNION ALL
SELECT TO_CHAR(SYSDATE + 0.04, 'MM/DD/YYYY HH24:MI:SS' ) dt ,
SYSDATE + 0.04 dt2
FROM DUAL
) ;
-------------------------------------------
Date, C_Dtime, C_Date
06/09/2017 22:47:54 2 1
06/09/2017 21:50:18 2 1