1,617
社区成员
发帖
与我相关
我的任务
分享
select 规格,日期,名称,最小价格,最大价格
from(select distinct 规格,日期,名称,
count(distinct 价格)over(partition by 规格,日期,名称) cnt,
min(价格)over(partition by 规格,日期,名称) 最小价格,
max(价格)over(partition by 规格,日期,名称) 最大价格
from 表)
where cnt > 1;
select 规格,日期,名称,最小价格,最大价格
from(select distinct 规格,日期,名称,
count(distinct 价格)over(partition by 规格,日期,名称) cnt,
row_number()over(partition by 规格,日期,名称 order by 价格) 最小价格,
row_number()over(partition by 规格,日期,名称 order by 价格 desc) 最大价格,
rownum rn
from 表)
where rn = 1;
select 规格,日期,名称,最小价格,最大价格
from(select distinct 规格,日期,名称,
count(distinct 价格)over(partition by 规格,日期,名称) cnt,
row_number()over(partition by 规格,日期,名称 order by 价格) 最小价格,
row_number()over(partition by 规格,日期,名称 order by 价格 desc) 最大价格,
rownum rn
from 表)
where rn = 1;
[/quote]
查询出来结果只有一条数据
select 规格,日期,名称,价格
from(select distinct 规格,日期,名称,价格,count(distinct 价格)over(partition by 规格,日期,名称) cnt from 表)
where cnt > 1;
--SQL1
select 规格,日期,名称,价格
from 表
where (规格,日期,名称) in(select 规格,日期,名称
from (select 规格,日期,名称,count(distinct 价格) cnt
from 表
group by 规格,日期,名称
having count(distinct 价格) > 1
)
);
数据量大的话,使用下面这个SQL,性能更高
--SQL2
select 规格,日期,名称,价格
from(select 规格,日期,名称,价格,count(distinct 价格)()over(partition by 规格,日期,名称) cnt from 表)
where cnt > 1;