如何按公共列元素排序然后排列

56lgkhnf  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(567)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

9个月前关门了。
改进这个问题
我有一个products表,其中有'sell'、'name'和'mer\u id'列,我想根据销售数量排列产品,如果它们有相似的mer\u id,则对它们进行分组,这将确保具有相同mer\u id的其他产品的最畅销产品同时出现在顶部。

sold | mer_id | name
------------------------
6    |   7  | iphone
3    |   2  | ipad
1    |   7  | macbook air
5    |   3  | mackbook pro
6    |   2  | iwatch

我想要的结果:

sold | mer_id | name
------------------------
6    |   7  | iphone
1    |   7  | mackbook air
6    |   2  | iwatch
3    |   2  | ipad
5    |   3  | mackbook pro

我不知道怎么做。

ftf50wuq

ftf50wuq1#

我想先显示销售数量最多的商品的商家id
如果您运行的是mysql 8.0,则可以使用窗口函数:

select *
from mytable
order by sum(sold) over(partition by mer_id) desc, sold desc

在早期版本中,可以使用相关子查询:

select t.*
from mytable t
order by 
    (select sum(t1.sold) from mytable t1 where t1.mer_id = t.mer_id) desc, 
    sold desc

相关问题