mysql - 按相似字段分组的嵌套选择查询
问题描述
我有一个时间条目数据库,其中存储每个条目的 userID、roundedHours、dateSpent 和 taskID(这些是每日时间卡)。我正在尝试创建一个查询,该查询将输出按 userID 分组的 roundedHours 总和,其中 taskID 在指定日期之间满足特定值。
我尝试过的代码如下。overhead_admin
我需要将其输出并按用户 ID 分组,但我的输出是两者的总和total_hours
(每行相同),而不是特定于用户 ID。
SELECT userName, userID,
(SELECT sum(roundedHours)
FROM `db`.`TimeEntries`
WHERE taskId = 3050483 AND (spendDate BETWEEN '2020-11-02' AND '2020-11-08')) as overhead_admin,
(SELECT sum(roundedHours)
FROM `db`.`TimeEntries`
WHERE (spendDate BETWEEN '2020-11-02' AND '2020-11-08')) as total_hours
FROM `db`.`TimeEntries`
GROUP BY userID
任何人都可以帮助我,以便每一行都将具有该用户的总 SPECIFIC 而不是整体相加吗?我得到的输出错误如下图所示:
解决方案
使用条件聚合:
SELECT userName, userID,
sum(case when taskId = 3050483 AND (spendDate BETWEEN '2020-11-02' AND '2020-11-08' then roundedHours end) as overhead_admin,
sum(case when spendDate BETWEEN '2020-11-02' AND '2020-11-08' then roundedHours end) as total_hours
FROM `db`.`TimeEntries`
GROUP BY userID
推荐阅读
- django - django.core.exceptions.FieldError:为类指定的未知字段(日期时间)
- html - 在应用程序(例如whatsapp)上发送链接时显示页面信息
- clojure - Clojure 中究竟是如何处理 POST 请求主体的?(http-kit,组合)
- c# - C# MongoDB GeoJsonPoint JSON 对象
- ubuntu-18.04 - 如何在 Ubuntu18.04 中安装 liblog4cxx10-dev
- tensorflow - 尝试使用 NVIDIA Geforce 920M 运行 Tensorflow 代码
- android - 什么导致致命异常:android.view.InflateException?
- java - 我必须拆分用户以 DDMMYYYY 格式输入的日期。但是,如果您输入 70702000 它会显示我的所有 3 个错误而不是一个
- plot - Julia Langauge 微分方程示例
- c++ - 为什么我的 Qt5 QPixmap 没有正确显示使用某些 OpenCV 算法处理的帧?