【问题标题】:Datewise count and date range count using Oracle SQL使用 Oracle SQL 的按日期计数和日期范围计数
【发布时间】:2021-10-05 16:22:48
【问题描述】:

我有一个如表(图片)所示的数据。我想找到那个号码。一天和某个日期范围内的新患者和复查患者(人数)。

表格数据是(如附图所示)

RegNo VisitID VisitDate NewReview DocID Specialisation
301573 RE410429 10-07-2021 Review DOC00082 SCOM0002
259717 RE410452 10-07-2021 Review DOC00082 SCOM0002
305781 RE410474 10-07-2021 New DOC00001 SCOM0002
301573 RE410536 10-07-2021 Review DOC00007 SCOM0025
305287 RE410544 10-07-2021 Review DOC00004 SCOM0003
305781 RE410570 10-07-2021 Review DOC00004 SCOM0003
197248 RE410573 10-07-2021 Review DOC00179 SCOM0003
291838 RE410574 10-07-2021 Review DOC00179 SCOM0003
305464 RE410579 10-07-2021 Review DOC00152 SCOM0018
305787 RE410609 12-07-2021 New DOC00082 SCOM0002
305801 RE410643 12-07-2021 New DOC00082 SCOM0002
305626 RE410663 12-07-2021 Review DOC00082 SCOM0002
305287 RE410697 12-07-2021 Review DOC00004 SCOM0003
305802 RE410711 12-07-2021 Review DOC00004 SCOM0003
305464 RE410714 12-07-2021 Review DOC00004 SCOM0003
197248 RE410721 12-07-2021 Review DOC00179 SCOM0003
243161 RE410723 12-07-2021 Review DOC00015 SCOM0014
291838 RE410724 12-07-2021 Review DOC00179 SCOM0003

当我为每个日期制作报告时,我希望输出是

Date New Review
10-07-2021 1 6
12-07-2021 2 7

(RegNo 305781 仅在“新”(7 月 10 日)下被考虑,尽管患者在同一天咨询了另一位专家。第一次咨询是“新”,同一天的其他专业咨询是“审查”。但就人数而言,此 RegNo (305781) 应仅在 New 下考虑。)

当我为某个日期范围(从 10-07-2021 到 12-07-2021)生成报告时,输出应该是

New Review
3 13

但是我得到的日期范围(从 10-07-2021 到 12-07-2021)是(错误的输出)

New Review
3 10

(给定日期范围内的不同 RegNo)。

请帮助我进行适当的查询。

Oracle Table Data

【问题讨论】:

标签: oracle select


【解决方案1】:

使用条件聚合:

SELECT
    VisitDate,
    COUNT(CASE WHEN NewReview = 'New' THEN 1 END)    AS New,
    COUNT(CASE WHEN NewReview = 'Review' THEN 1 END) AS Review
FROM yourTable
GROUP BY
    VisitDate
ORDER BY
    VisitDate;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多