我有这样的表:
我需要获取数字,在不同的城市重复,并且还为每个数字获取这些城市的数量。
那是从这张表中,我需要结果:
number | repeated citys quantity
----------
222 | 2
因为数字222
在 2 个不同的城市重复。
我有这个解决方案:
1) 从数组返回唯一值的great函数,例如array_unique()
2)然后:
SELECT number, array_length(uniq_city_list, 1) FROM (
SELECT number, array_unique(array_agg(city)) AS uniq_city_list FROM mytable
GROUP BY number
)
AS t
WHERE array_length(uniq_city_list, 1) > 1
但是,这样做可能有更好的解决方案吗?我认为这不是最佳查询...