繁体   English   中英

在SQL中从客户ID中选择城市

[英]Selecting City from Customer ID in SQL

客户已从不同城市订购。 因此,我们有多个城市针对相同的customer_id。 如果客户已从多个城市订购了相同数量的订单,那么我想针对发生最多次数的客户ID显示该城市,那么应该从下一个订单的城市中选择城市。 我已经尝试过类似的东西

SELECT customer_id,delivery_city,COUNT(DISTINCT delivery_city)
FROM analytics.f_order
GROUP BY customer_id,delivery_city
HAVING COUNT(DISTINCT delivery_city) > 1
select customer_id,
       delivery_city,
       amount
from
(
select t.*,
       rank() over (partition by customer_id order by amount asc) as rank
from(
SELECT customer_id,
       delivery_city,
       COUNT(DISTINCT delivery_city) as amount
FROM analytics.f_order
GROUP BY customer_id,delivery_city
) t
)
where rank = 1
WITH cte as (
    SELECT customer_id, 
           delivery_city, 
           COUNT(delivery_city) as city_count, 
           MAX(order_date) as last_order
    FROM analytics.f_order
    GROUP BY customer_id, delivery_city
), ranking as (
    SELECT *, row_number() over (partition by customer_id
                                 order by city_count DESC, last_order DESC) as rn
    FROM cte
)
SELECT *
FROM ranking 
WHERE rn = 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM