gpt4 book ai didi

mysql - 一个查询中的多个 COUNT(DISTINCT CAST(field AS DATE)

转载 作者:行者123 更新时间:2023-12-04 03:39:27 25 4
gpt4 key购买 nike

我需要根据 2 个标准(作为一个整体)找到 countdistinct dates,但我还需要显示 distinct date 对 2 个条件中的每一个都进行计数。因为日期字段还包括时间,所以我使用:
COUNT(DISTINCT CAST(se.SeriesDate AS DATE)),效果很好。但是我正在努力为我的 WHERE 子句中的 2 个条件中的每一个包含相同的计数。

我试过:

SELECT ID,
COUNT(DISTINCT CAST(se.SeriesDate AS DATE)) VISITS,
COUNT(DISTINCT CAST(se.SeriesDate AS DATE) CASE WHEN se.Manufacture LIKE 'CIRRUS%' THEN se.SeriesDate END) Cirrus,
COUNT(DISTINCT CAST(se.SeriesDate AS DATE) CASE WHEN se.Manufacture LIKE 'Glaucoma%' THEN se.SeriesDate END) Glaucoma
From patient
WHERE (se.Manufacture LIKE 'CIRRUS%' OR se.Manufacture LIKE 'Glaucoma%'
GROUP BY ID

我希望它返回这个(这些是不同的访问日期):

Visits: 9
Cirrus: 6
Glaucoma: 3

这显然行不通,但在尝试一起研究 CASTCASE 之后,我没有找到任何东西。如果这不是日期字段,我知道该怎么做。有没有人这样做过? TIA!

最佳答案

条件聚合语法:

SELECT ID,
COUNT(DISTINCT CAST(se.SeriesDate AS DATE)) VISITS,
COUNT(DISTINCT CASE WHEN se.Manufacture LIKE 'CIRRUS%'
THEN CAST(se.SeriesDate AS DATE) END) Cirrus,
COUNT(DISTINCT CASE WHEN se.Manufacture LIKE 'Glaucoma%'
THEN CAST(se.SeriesDate AS DATE) END) Glaucoma
From patient
WHERE (se.Manufacture LIKE 'CIRRUS%' OR se.Manufacture LIKE 'Glaucoma%')
GROUP BY ID;

关于mysql - 一个查询中的多个 COUNT(DISTINCT CAST(field AS DATE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66320851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com