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

如何为聚合后的指标添加第二个维度列?SQL实操问询

解决方法

因为你已经确认每个userId对应的userType是唯一的,所以有两种可靠的实现方式:

方法一:将userType加入GROUP BY子句

这是最符合SQL标准的写法,当SELECT中包含非聚合列时,这些列通常需要出现在GROUP BY中(部分数据库宽松模式下可省略,但规范写法建议遵循此规则)。由于每个userId对应唯一的userType,分组userId, userType和只分组userId的结果完全一致,不会影响聚合计算的准确性。

修改后的SQL:

select 
SUM(case
when (eventType like 'Add') then 1 else 0
end) as sum_uploads,
userId, 
userType
from entry
group by userId, userType
order by sum_uploads desc

方法二:使用聚合函数获取唯一的userType

如果不想修改GROUP BY子句,可以用MAX()或MIN()这类聚合函数包裹userType。因为每个userId的userType唯一,取最大或最小值都会得到那个唯一值,不会改变结果。

修改后的SQL:

select 
SUM(case
when (eventType like 'Add') then 1 else 0
end) as sum_uploads,
userId, 
MAX(userType) as userType
from entry
group by userId
order by sum_uploads desc

两种方法都能满足需求,推荐优先使用方法一,它更符合SQL规范,可读性也更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 08:20:34