MySQL公式将线性刻度转换为对数刻度
我试图根据订单数量计算一个城市人气栏。人气指数必须介于0到100之间 我们简化了此查询:MySQL公式将线性刻度转换为对数刻度,mysql,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万张订单 由于订单分布
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
我们希望有一个对数刻度,这样我们仍然可以比较最不受欢迎城市的受欢迎程度
将流行度从线性比例转换为对数比例的公式是什么?更新位置内部连接
从orders GROUP BY zip中选择zip,COUNT1 popularity作为orderCount
设置location.popularity=archiveCount.popularity*100/800000
其中location.zip=archiveCount.zip 尝试此查询:
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
请注意,您需要确定最大值。一条语句没有多大帮助。你最好解释一下答案是如何解决问题的。另外,我认为答案是错误的,因为您没有回答如何平滑非线性分布的问题,而实际的SQL语句是无效的。