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

如何查询同一日期在不同城市的DeliveryagentID?SQL问题解决

修正SQL以找出同一日期出现在不同城市的配送代理ID

需求:找出同一日期出现在不同城市的DeliveryagentID,预期输出为1003(该代理在2024-03-21同时出现在孟买和班加罗尔)。现有SQL语句未得到正确结果,需修正。

数据表结构及数据

DeliveryagentID, Date,    City,     Cnt_Delivery
'1001', '2021-03-21 00:00:00', 'Bangalore', '45'
'1002', '2022-03-21 00:00:00', 'Delhi',     '35'
'1002', '2023-03-21 00:00:00', 'Delhi',     '70'
'1002', '2024-03-21 00:00:00', 'Chennai',   '45'
'1003', '2021-03-21 00:00:00', 'Mumbai',     '45'
'1003', '2024-03-21 00:00:00', 'Mumbai',     '85'
'1003', '2024-03-21 00:00:00', 'Bangalore',   '50'

原SQL存在的问题

原SQL统计的是同一代理同一日期的总记录数,即使代理在同一天同一城市有多条配送记录(比如1002在2023-03-21的Delhi有两条),也会被误判为符合条件,但这并不满足“出现在不同城市”的需求。

select DeliveryagentID,
       Date,
       count(Date) as CountR 
from fraud 
group by Date,DeliveryagentID 
having CountR>1;

修正后的SQL

-- 仅返回符合条件的代理ID
select DeliveryagentID
from fraud 
group by Date, DeliveryagentID 
having COUNT(DISTINCT City) > 1;

-- 同时查看日期及对应不同城市数量
select DeliveryagentID,
       Date,
       COUNT(DISTINCT City) as DistinctCityCount
from fraud 
group by Date, DeliveryagentID 
having DistinctCityCount > 1;

修正说明

  • 用COUNT(DISTINCT City)替代count(Date),统计同一代理在同一日期下的唯一城市数量,确保只有当代理在同一天出现在多个不同城市时才被筛选出来
  • 分组逻辑保持Date, DeliveryagentID不变,确保按“日期+代理”的维度进行统计

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:35:20