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

新手求助:在Access SQL中实现SOURCE_ACCOUNT_ID的COUNT DISTINCT

嘿,我来帮你搞定这个Access SQL的问题!

首先得先理清你的需求:你已经有一个从[SQLAExport DEC 2017]表提取字段的查询,现在想给这个查询加上唯一SOURCE_ACCOUNT_ID的计数,对吧?你自己写的子查询思路是对的,只是没找对和原查询整合的方式,而且还有个小细节要注意——字段名得统一(你子查询里写的SOURCE_ACC_ID和原表的SOURCE_ACCOUNT_ID要保持一致,不然会报错)。

两种常见场景的解决方案:

场景1:在原查询的每一行旁,显示整个数据集里唯一账号的总数

如果你想保留原查询的所有字段,同时在每一行都显示全局的唯一SOURCE_ACCOUNT_ID数量,直接把你的子查询作为一个标量子查询放到SELECT列表里就行:

SELECT 
    [SQLAExport DEC 2017].SOURCE_ACCOUNT_ID, 
    [SQLAExport DEC 2017].SAP_ACC, 
    [SQLAExport DEC 2017].SAP_CC, 
    [SQLAExport DEC 2017].SAP_PRODUCT,
    -- 这里放统计唯一账号的子查询
    (SELECT Count(*) FROM (SELECT DISTINCT SOURCE_ACCOUNT_ID FROM [SQLAExport DEC 2017])) AS DistinctAccountCount
FROM 
    [SQLAExport DEC 2017];

场景2:按某个维度分组,统计每组内的唯一账号数量

如果你是想按比如SAP_CC或者SAP_PRODUCT分组,统计每个分组下的唯一SOURCE_ACCOUNT_ID数量,那得用嵌套子查询先去重再分组:

SELECT 
    grouped_data.SAP_CC,
    Count(*) AS DistinctAccountsPerCC
FROM (
    -- 先按分组字段+账号去重
    SELECT DISTINCT SAP_CC, SOURCE_ACCOUNT_ID 
    FROM [SQLAExport DEC 2017]
) AS grouped_data
GROUP BY grouped_data.SAP_CC;

操作步骤:

  1. 打开你的Query VL,切换到SQL视图(在设计视图顶部的「视图」菜单里选「SQL视图」)
  2. 把原SQL替换成上面对应场景的代码(记得根据你的实际需求选场景1或2)
  3. 点击运行按钮,就能看到新增的计数列正常显示数值了

另外补充下:Access的设计视图确实没法直接通过「Criteria」区域实现COUNT DISTINCT,必须手动写SQL语句,你之前的尝试方向是对的,只是差了整合的细节~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:51:58