You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询拥有最多remote类型订单的所有地区名称(无需LIMIT)

解决获取并列最多远程订单地区的SQL问题

现有orders表,包含name(地区名称)和type字段,type的取值为'remote'或'in-person'。需要获取拥有最多'remote'类型订单的地区名称。

原SQL语句仅能返回唯一的最大订单数地区:

SELECT name, COUNT(order_id) as remote_count
FROM orders
WHERE type = 'remote'
GROUP BY name
ORDER BY remote_count DESC
LIMIT 1

现在需要实现支持多个地区并列最大值的查询,且不能使用LIMIT,以下是两种可行方案:

方案一:子查询匹配最大订单数

先统计各地区的远程订单数,再筛选出订单数等于全局最大值的记录:

SELECT name, remote_count
FROM (
    SELECT name, COUNT(order_id) AS remote_count
    FROM orders
    WHERE type = 'remote'
    GROUP BY name
) AS region_remote_counts
WHERE remote_count = (
    SELECT MAX(rc)
    FROM (
        SELECT COUNT(order_id) AS rc
        FROM orders
        WHERE type = 'remote'
        GROUP BY name
    ) AS counts
);

方案二:窗口函数(更简洁)

使用DENSE_RANK()窗口函数对订单数排名,直接筛选排名为1的地区(并列最大值会共享排名1):

SELECT name, remote_count
FROM (
    SELECT 
        name, 
        COUNT(order_id) AS remote_count,
        DENSE_RANK() OVER(ORDER BY COUNT(order_id) DESC) AS rnk
    FROM orders
    WHERE type = 'remote'
    GROUP BY name
) AS ranked_regions
WHERE rnk = 1;

内容的提问来源于stack exchange,提问作者wafflehouse67

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 18:44:55