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

k75qkfdt  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(254)

我想根据订单数量来计算一个城市的“人气”栏。人气指数必须介于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。
我们希望有一个对数规模,以便我们仍然可以比较最不受欢迎的城市的受欢迎程度。
什么样的公式可以把人气从线性尺度转换成对数尺度?

8yparm6h

8yparm6h1#

将location inner join(select zip,count(1)popularity from orders group by zip)更新为ordercount set location.popularity=archivecount.popularity*100/800000 where location.zip=archivecount.zip;

jhiyze9q

jhiyze9q2#

尝试此查询:

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 .

相关问题