解释下SELECT skc brand_label FROM SELECT t1skc t1brand_label ROW_NUMBER OVER PARTITION BY t1parent_sku ORDER BY CASE WHEN t1brand_label = 爆款 THEN 1 ELSE 2 END AS brand_rank FROM erp_pdd_owe_goods
该查询语句的目的是从erp_pdd_owe_goods_management表中选取skc和brand_label两列数据,并且按照指定规则对数据进行排序和分组。
具体步骤如下:
-
子查询部分: 从erp_pdd_owe_goods_management表中选择skc和brand_label两列数据。 在这些数据的基础上,使用ROW_NUMBER() OVER ( PARTITION BY t1.parent_sku ORDER BY CASE WHEN t1.brand_label = '爆款' THEN 1 ELSE 2 END )进行排序并进行分组。 分组规则是根据parent_sku进行分组,然后根据brand_label进行排序,其中'爆款'排在前面。 生成的结果会有一个新的列brand_rank,用于表示每个分组中的排序位置。 注意,这个子查询只选择brand_label为'热销款'或'爆款'的数据。
-
外层查询部分: 从子查询结果中选择skc和brand_label两列数据。 在这些数据的基础上,通过WHERE子句筛选出brand_rank等于1的数据。 这样就得到了按照规则排序后每个分组中排名第一的数据。
简而言之,该查询的结果是从erp_pdd_owe_goods_management表中选择每个parent_sku分组中brand_label为'热销款'或'爆款'的数据中,按照指定规则排序后的第一条数据的skc和brand_label
原文地址: https://www.cveoy.top/t/topic/iN6x 著作权归作者所有。请勿转载和采集!