MySQL公式将线性标度转换为对数

时间:2018-10-17 07:51:13

标签: mysql

我正在尝试根据订单数计算城市的“受欢迎程度”列。流行指数必须为0到100。

我们有这个查询(简体):

UPDATE city INNER JOIN
    (SELECT zip, COUNT(1) popularity FROM order GROUP BY zip) AS orderCount
ON city.zip = orderCount.zip
SET city.popularity = orderCount.popularity*100/800000

最受欢迎的拉链有80万笔订单。

由于订单分布不是线性的,因此我们有一些城市的价值很高,而其他大多数城市的数量很少。 因此,大多数流行度是1或0。

我们希望有一个对数刻度,以便我们仍然可以比较最受欢迎的城市的受欢迎程度。

将流行度从线性标度转换为对数标度的公式是什么?

2 个答案:

答案 0 :(得分:1)

尝试此查询:

UPDATE city INNER JOIN
    (SELECT zip, LOG(10, COUNT(1)) popularity FROM order GROUP BY zip) AS orderCount
ON city.zip = orderCount.zip
SET city.popularity = orderCount.popularity*100/GreatestValue

请注意,您需要确定GreatestValue

答案 1 :(得分:-2)

更新位置INNER JOIN     (选择zip,COUNT(1)个流行度来自订单GROUP BY zip)AS orderCount SET location.popularity = archiveCount.popularity * 100/800000 WHERE location.zip = archiveCount.zip;

相关问题