分组函数group by使用技巧

编程入门 行业动态 更新时间:2024-10-10 19:17:48

分组函数group by<a href=https://www.elefans.com/category/jswz/34/1767460.html style=使用技巧"/>

分组函数group by使用技巧

一、需求:获取销售版本组合


颜色(属性名)+ (黑色,白色…) 属性值集合

    @Datapublic static class ItemSaleAttrsVo{private Long attrId;private String attrName;//当前属性有多少种版本:黑色,白色,蓝色,这里使用字符串拼接的方式所以没有使用集合存储private String attrValues;}

二、Group by分组

为什么经常使用group by分组会报错呢?想要分组成功就必须保证查询结果的字段值保证一对一的关系

(1)分组前,每个字段的记录都是一 一对应的

(2)select 字段A ,字段B from XX gorup by 字段A
如果只对字段A进行group by 分组,如果是按种类分组,那么每个种类就只会展示一条记录,此时与其他未分组的字段会形成一对多的关系
那么数据库是无法展示结果的,并且报错

(3)怎么解决一对多的问题,将未分组的字段也转换成一条记录,这样就能保证一对一
可以将查询的结果分成两类,select 分组的字段,未参与分组的字段 from xxx
分组的字段使用group by,未参与分组的字段就必须使用聚合函数(group_concat,count ,avg,sum…)聚合为一条记录

三、查询结果

使用group_concat聚合函数可以将多记录合并

SELECT b.attr_id,b.attr_name,GROUP_CONCAT(DISTINCT b.`attr_value`)
FROM `pms_sku_info` a LEFT JOIN `pms_sku_sale_attr_value` b ON a.sku_id = b.sku_id
WHERE a.spu_id = 28
GROUP BY b.attr_id,b.attr_name

distinct 去重后

更多推荐

分组函数group by使用技巧

本文发布于:2024-02-12 00:26:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1684591.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:使用技巧   函数   group

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!