sql 分组后在分组内排序、每个分组中取前N条

这节我们实现下 取出数据分组后排序


image.png

首先我们实现下这个需求 取出products表中数据 按照p_name p_type分组 并且按照p_view倒排序
首先我们写出分组sql


image.png

可以看见数据按照p_type进行了分组显示
接下来我们加上按照p_view倒排序显示
image.png

可以发现确实是按照p_view倒排序显示了 但是分组功能却不好用了 接下来看下如何解决
我们可以换种思路 先按照p_type进行排序 在按照p_view进行排序 这个问题就解决了


image.png

可以看见按照预期的结果执行了 p_type可以按照ascll码进行排序
不会出现类别的交叉
下面我们实现了 取出每个分类下面点击量最高的前两个商品
用到上节课的行号
image.png

其中用到了 子查询 和mysql里面自带的if函数 有三个表达式 表达式一成立 则执行表达式二 否则执行表达式三
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容