我写了这样一句sql:
Select Count(Distinct(s.Seqid))
From Salescosttbl s
Where Trunc(s.Saledate) >= To_Date('2008-10-15', 'yyyy-mm-dd')
And Trunc(s.Saledate) <= To_Date('2008-10-15', 'yyyy-mm-dd')
此时所计算出的数目为815,
而我修改成一下后却数目却变了:
Select
s.productlevelid,
Count(Distinct(s.Seqid))
From Salescosttbl s
Where Trunc(s.Saledate) >= To_Date('2008-10-15', 'yyyy-mm-dd')
And Trunc(s.Saledate) <= To_Date('2008-10-15', 'yyyy-mm-dd')
此时将count函数计算出的数目合计却不是815。
请各路高手帮小弟解疑,谢谢!
Select Count(Distinct(s.Seqid))
From Salescosttbl s
Where Trunc(s.Saledate) >= To_Date('2008-10-15', 'yyyy-mm-dd')
And Trunc(s.Saledate) <= To_Date('2008-10-15', 'yyyy-mm-dd')
此时所计算出的数目为815,
而我修改成一下后却数目却变了:
Select
s.productlevelid,
Count(Distinct(s.Seqid))
From Salescosttbl s
Where Trunc(s.Saledate) >= To_Date('2008-10-15', 'yyyy-mm-dd')
And Trunc(s.Saledate) <= To_Date('2008-10-15', 'yyyy-mm-dd')
此时将count函数计算出的数目合计却不是815。
请各路高手帮小弟解疑,谢谢!
s.productlevelid,
Count(Distinct(s.Seqid))
From Salescosttbl s
Where Trunc(s.Saledate) >= To_Date('2008-10-15', 'yyyy-mm-dd')
And Trunc(s.Saledate) <= To_Date('2008-10-15', 'yyyy-mm-dd')
这句运行步报错嘛?要用group by 配合才行
Select
s.productlevelid,
Count(Distinct(s.Seqid))
From Salescosttbl s
Where Trunc(s.Saledate) >= To_Date('2008-10-15', 'yyyy-mm-dd')
And Trunc(s.Saledate) <= To_Date('2008-10-15', 'yyyy-mm-dd')
group by s.productlevelid
s.productlevelid,
Count(Distinct(s.Seqid))
From Salescosttbl s
Where Trunc(s.Saledate) >= To_Date('2008-10-15', 'yyyy-mm-dd')
And Trunc(s.Saledate) <= To_Date('2008-10-15', 'yyyy-mm-dd')
你这句没有GROUP BY可以运行?
第二句,没有group by 应该是会报错的,加了group by ,是根据s.productlevelid分组统计数量
Seqid相同,productlevelid不相同時;結果集會出現不同
假设数据如下productlevelid Seqid
1 1
1 2
1 3
2 1
2 2
2 2
2 3
2 4你第一语句,是统计全部不重复的seqid,里面共8条纪录,过滤重复的,只余下四条
执行结果
Count(Distinct(s.Seqid))
4而第二个语句,是分组统计,按productlevelid分组
那第一组productlevelid=1,共有3条不重复的seqid
面=2的,有五条纪录,不重复的有4个
执行结果
s.productlevelid Count(Distinct(s.Seqid))
1 3
2 4