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

如何编写SQL查询获取符合(1,2)数据源组合的处方数据计数?

解决方案

没问题,我帮你调整原查询来满足计数需求和datasource的筛选条件,下面是两种可行的写法:

基础实现版本

这个版本直接在你原查询的基础上修改,逻辑清晰易懂:

SELECT COUNT(*) AS record_count
FROM DrugPrescription dp
WHERE 
    dp.id IN (
        SELECT DISTINCT dpe.template 
        FROM [DrugPrescriptionEdition] dpe 
        JOIN PrescriptionDoseDetail pdd ON pdd.prescription = dpe.id 
        WHERE doseEnd_endDate IS NULL AND doseEnd_doseEndType = 1
    )
    AND dp.datasource IN (1, 2); -- 只统计datasource为1或2的记录

性能优化版本(推荐大数据量场景)

如果你的表数据量比较大,用EXISTS替代IN通常会有更好的查询性能,因为它找到匹配项后就会停止检索,不用全量拉取子查询的结果集:

SELECT COUNT(*) AS record_count
FROM DrugPrescription dp
WHERE 
    dp.datasource IN (1, 2)
    AND EXISTS (
        SELECT 1
        FROM [DrugPrescriptionEdition] dpe 
        JOIN PrescriptionDoseDetail pdd ON pdd.prescription = dpe.id 
        WHERE 
            dpe.template = dp.id
            AND doseEnd_endDate IS NULL 
            AND doseEnd_doseEndType = 1
    );

补充说明

  • 这里默认你说的“datasource列包含(1,2)组合”是指datasource的值为1或者2,如果你的datasource是存储多值的字段(比如逗号分隔的字符串),需要调整筛选逻辑,比如用dp.datasource LIKE '%1%' AND dp.datasource LIKE '%2%'(具体要根据字段的存储格式来调整)。
  • 两个写法都保留了你原有的核心逻辑:只统计那些关联到满足doseEnd_endDate IS NULL且doseEnd_doseEndType=1的DrugPrescriptionEdition和PrescriptionDoseDetail的DrugPrescription记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:20:54