我想根据订单数量来计算一个城市的“人气”栏。人气指数必须介于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条答案
按热度按时间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;
jhiyze9q2#
尝试此查询:
请注意,您需要确定
GreatestValue
.