技术饭
MySQL如何查询每一个栏目下价格最高的商品?
MySQL如何查询每一个栏目下价格最高的商品?这里是使用子查询中group by出价格最大与分类id信息,然后再上一级查询中进行数据比较筛选相应的信息,然后再进行group by操作!
查找每个栏目下最贵的商品信息,其中borrow_type_id是分类id,borrow_account是价格
SELECT * FROM jdt_borrow a,(
SELECT borrow_type_id,MAX(borrow_account) AS borrow_account
FROM jdt_borrow
GROUP BY borrow_type_id) b
WHERE a.borrow_type_id = b.borrow_type_id AND a.borrow_account = b.borrow_account
GROUP BY a.borrow_type_id
网上的解决方案:
假设有下面这样一张表:我们要用MySQL查询出每个栏目下最贵的那一个商品。
查询的结果在内存中可以当做一张表来看待,可以对这张表进行再次查询,具体细节如下图所示:
但是网上的这个方法似乎设计到数据库的一个group by问题就是无法筛选出大的价格一直是默认的,如果有这个问题可以查看一下数据库的模式:sql_mode的only_full_group_by。
实践SQL代码:查询点赞排行,获取某个时间内最高点赞数的视频记录进行GROUP BY排序
SELECT id,catid,user_id,name,MAX(zan) AS zan,create_time
FROM (SELECT id,catid,user_id,name,zan,create_time FROM aikehou_course_list WHERE create_time BETWEEN '2019-08-01 00:00:00' AND '2019-08-10 00:00:00' ORDER BY zan DESC) AS tmp
GROUP BY user_id
ORDER BY zan DESC LIMIT 50;
文明上网理性发言!