分组函数group by使用技巧
分组函数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 去重后
最新文章
- 网络命令(ARP、PING)的使用分析
- Report中的Drill down
- 卷积神经网络使用到的公式
- 分类:决策树——剪枝
- “脱离应用开发者的数据库,不会成功”,黄东旭万字长文剖析数据库发展新趋势...
- 自定义注解实现RBAC权限校验,不要再说你不会了
- html5 tooltip,HTML5 教程之CSS 提示工具(Tooltip)
- #include<>和#include“”的区别
- calendar java 线程安全
- Android4.4深入浅出之SurfaceFlinger与Client通信框架(一)
- 怎么把电脑上的准考证发送到手机上呢
- 粒子群算法(PSO)优化最小二乘支持向量机回归预测,PSO
- JAVA Integer取值范围问题
- https ssl单项认证和双向认证以及证书生成
- supersqli(SQL注入流程及常用SQL语句)
- IT企业面试常见逻辑推理题智力题及详解答案(二)
- C语言程序设计之通讯录