存在表如上,现在需要写一个sql:
两个要求:查询出只存在一个item_id 或者存在多个item_id但是要求supply_price相同则随机取一条,
按照以上要求可以查询出,item_id为:762,763,764,765,766(随便哪一条)的数据,
请问该SQL怎么写?
使用开窗函数,item_id分组编号,取编号为1的记录:
select item_id from (select item_id, row_number() over(partition by item_id) rid from xx_table) t where rid=1
1、那为什么不直接使用: count(supply_price) >= 1 呢,这样需求就都满足了啊?
select item_id from xx_table group by item_id having count(supply_price) >= 1 and count(distinct supply_price)=1;
嗯……甚至直接使用 count(distinct supply_price)=1 即可
select item_id from xx_table group by item_id having count(distinct supply_price)=1;