数据如下
uid price
1 1
1 2
1 7
2 2
2 3
2 4
3 5
3 4
4 6
期望输出如下:
uid price
1 1
2 3
3 5
4 6
需求:想要查询出当前所有唯一的price,如果同一个uid有多个唯一的price只能取唯一且最小的那个
问题:唯一price查询我能实现,用group by price,主要是“如果同一个uid有多个唯一的price只能取唯一且最小的那个”这个我弄不出来,我查实group by price,uid也不行
请教大神该如何查询?
唯一和最小都是聚合运算,但最小未必唯一,
所以你这个查询一个单独的语句应该是写不出的,得搞个有嵌套子查询或者带join的联表才行
一次查询 count(price) as c, group by uid,price where c = 1
结果基础上再查询 min(price) as m, group by uid
暂时没有mysql环境,就不调试了,逻辑是大概这样的,
顺便: 你这需求里,没说如果一个uid只有一个price,并且这个price 不唯一该怎么办,
按我说的逻辑 写sql,可能会存在有uid对应不上price的