oracle distinct query-获取年度distinct值

pjngdqdw  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(235)

我有一张table
客户服务ID
客户ID
许多其他具有值的列

我想知道每年唯一客户的数量(以及其他列的值),我不做分组。
像这样的质疑 select distinct(CustomerID) from CustomerVisits where year in (2016,2017,2018,2019) 这不会基于每年唯一的客户进行查询。
例如,如果customerid“5544”在2016年出现4次,在2018年出现3次。我希望我的查询输出显示2016年的1次和2018年的1次。我的查询总共显示了1次,这不是我想要的。
有人能帮忙吗?

q7solyqu

q7solyqu1#

到时候你需要用小组

select year, count(distinct CustomerID) as CustomerID
from CustomerVisits 
where year in (2016,2017,2018,2019)
Group by CustomerID, year

据我所知,您可以使用以下两列:

select distinct year, CustomerID
    from CustomerVisits 
    where year in (2016,2017,2018,2019)
tzcvj98z

tzcvj98z2#

如果要保留所有列,可以使用窗口函数

SELECT *
    , COUNT(DISTINCT CustomerID) OVER (PARTITION BY year) as customer_in_same_year 
FROM CustomerVisits 
WHERE year IN (2016,2017,2018,2019)

未使用分组依据

相关问题