如何用Flexible Query获取同一BaseStore中价格重复≥2次的PriceRow?
问题解答
这个需求完全可以通过Flexible Query实现,不需要依赖Groovy脚本。
实现思路
借助Flexible Query的GROUP BY和HAVING子句,先按baseStore与price字段分组,筛选出分组内记录数≥2的组合,再关联回原PriceRowModel表,就能拿到所有符合条件的记录。
示例Flexible Query代码
SELECT pr FROM PriceRowModel pr WHERE (pr.baseStore, pr.price) IN ( SELECT pr2.baseStore, pr2.price FROM PriceRowModel pr2 GROUP BY pr2.baseStore, pr2.price HAVING COUNT(pr2.PK) >= 2 )
代码说明
- 子查询部分:按
baseStore和price分组统计,只保留记录数≥2的分组,也就是同一店铺下存在重复价格的组合。 - 主查询:筛选出所有属于这些重复价格组合的
PriceRowModel实例,即为目标结果。
如果需要添加额外过滤条件(比如限定特定商品、价格类型等),直接在主查询或子查询中补充WHERE语句即可,Flexible Query完全支持这类扩展。
内容的提问来源于stack exchange,提问作者Tomás Pizarro
相关产品推荐
相关产品推荐

