把所有商品按价格从低到高尽量均分成 4 组,组号 bucket 为 1–4,价格最低的一组为 1。
- 先把商品排成一列:按
price升序,价格相同按product_id升序。 - 设共有 n 个商品,每组
n ÷ 4(向下取整)个;余下的n mod 4个从前面的组开始,每组多分 1 个。例如 n = 30 时四组依次是 8、8、7、7 个;n = 6 时是 2、2、1、1 个。 - n 不足 4 时,每个商品自成一组,组号依次为 1、2、…、n。
- 同价格的商品可能被分到不同的组,这是允许的。
输入
products(product_id, name, category, price, cost, launched_on)
输出
列为 product_id, price, bucket(整数),每个商品一行,行顺序不限。