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

SQL中使用GROUP BY子句前如何按日期过滤数据

解决方案

你无需使用复杂的子查询即可实现需求,直接在GROUP BY前添加WHERE条件过滤日期即可,写法更简洁、执行效率更高:

SELECT
Diagnosis,
COUNT(*) AS NumberOfDiagnosis
FROM EXAMPLE
WHERE AdmissionDate < '2020-03-01'
GROUP BY Diagnosis

如果你明确需要用子查询/嵌套查询的方式实现,也可以先通过子查询过滤符合日期要求的记录,再在外层执行分组统计:

SELECT
Diagnosis,
COUNT(*) AS NumberOfDiagnosis
FROM (
    -- 子查询先过滤出早于2020-03-01的所有记录
    SELECT Diagnosis 
    FROM EXAMPLE 
    WHERE AdmissionDate < '2020-03-01'
) AS filtered_data
GROUP BY Diagnosis

两种写法的执行结果完全一致,符合你预期的输出:

DiagnosisNumberOfDiagnosis
Broken Bone2
Headache1
Cancer1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:48:03