首页 > 解决方案 > 在 MYSQL 5.7 中实现 mariadb 的 NTILE() 函数

问题描述

我不能使用 NTILE() 因为我目前使用的是 MYSQL 5.7,所以我想知道如何在没有 NTILE 的情况下将其转换为在 5.7 中可用。这是我要转换的查询:

SELECT
      clientid,
      ntile(4) over (
        order by
          last_order_date
      ) AS `rfm_recency`,
      ntile(4) over (
        order by
          count_order
      ) AS `rfm_frequency`,
      ntile(4) over (
        order by
          avg_amount
      ) AS `rfm_monetary`
    FROM
      (
        SELECT
          `clientid`,
          MAX(`date`) AS `last_order_date`,
          COUNT(`id`) AS `count_order`,
          AVG(`price`) AS `avg_amount`
        FROM
          `design`
        GROUP BY
          `clientid`
      ) AS t
  ) AS p```

标签: mysqlmariadbgreatest-n-per-groupquantile

解决方案


推荐阅读