mysql - 我想在 Where 条件中输入 2 个日期,一次用于 8 月,一次用于 10 月
问题描述
我想在 Where 条件中输入 2 个日期,一次用于 8 月,一次用于 10 月。不幸的是,我在这里没有进一步说明,因为我只能在 Where 条件中输入日期(从 .. 到),请参阅 AND 日期之间。
SELECT
subregion1_code,
subregion1_name,
SUM(new_confirmed) as august_confirmed,
SUM(new_tested) as august_tested,
SUM(new_confirmed) as october_confirmed,
SUM(new_tested) as october_tested,
SUM(new_confirmed) / SUM(new_tested) AS positive_test_rate,
FROM
`bigquery-public-data.covid19_open_data.covid19_open_data` as B
WHERE
country_code = "US"
AND aggregation_level = 1
AND date BETWEEN '2020-10-01' AND '2020-10-30'
GROUP BY
subregion1_code,
subregion1_name
ORDER BY
positive_test_rate DESC
解决方案
您可以使用条件聚合来做到这一点:
SELECT
subregion1_code,
subregion1_name,
SUM(CASE WHEN MONTH(date) = 8 THEN new_confirmed ELSE 0 END) AS august_confirmed,
SUM(CASE WHEN MONTH(date) = 8 THEN new_tested ELSE 0 END) AS august_tested,
SUM(CASE WHEN MONTH(date) = 10 THEN new_confirmed ELSE 0 END) AS october_confirmed,
SUM(CASE WHEN MONTH(date) = 10 THEN new_tested ELSE 0 END) AS october_tested,
SUM(new_confirmed) / SUM(new_tested) AS positive_test_rate,
FROM `bigquery-public-data.covid19_open_data.covid19_open_data` AS B
WHERE
country_code = 'US'
AND aggregation_level = 1
AND (date BETWEEN '2020-10-01' AND '2020-10-31' OR date BETWEEN '2020-08-01' AND '2020-08-31')
GROUP BY subregion1_code, subregion1_name
ORDER BY positive_test_rate DESC
推荐阅读
- javascript - 将 KB 转换为 MB 和 GB
- google-cloud-platform - 为部署在 Google AI Platform 上的 AI 应用程序公开 API 端点
- google-apps-script - 计算标签中的所有电子邮件
- rest - 应该使用什么 REST 方法来实现简单的进程间通信?
- laravel - 保存到数据库后自动发送电子邮件
- javascript - 用于专有名称的 JS 正则表达式:如何在每个单词的开头强制使用大写字母?
- javascript - 如何禁用页面加载?
- serverless-framework - 在无服务器框架中找不到满足声明的有效选项
- nativescript - saveToFile 未将图像显示到图库中
- c# - ASP.NET Core 防止 api 路由的 spa-fallback 路由