mysql - 在同一查询中获取个人和总工作时间

标签 mysql

我有下表(简化):

user_id    date           hours
1          2012-03-01     5
2          2012-03-01     8
3          2012-03-01     6
1          2012-03-02     3
3          2012-03-02     7

我想要的是在单个查询中获取给定用户 ID(例如 1)的总工作小时数,以及无论哪个用户(给定时间段内)的总工作小时数。

因此对于 user_id = 1 和时间段:2012-03-01 - 2012-03-02,查询应返回:own=8,总数=29.

我可以在两个单独的查询中完成,但不能在一个单独的查询中完成。

最佳答案

使用CASE:

SELECT SUM(
   CASE user_id 
      WHEN 1 THEN hours
      ELSE 0
   END) as Own,
SUM(hours) as Total
FROM HoursWorked
WHERE date BETWEEN '2012-03-01' AND '2012-03-02';

关于mysql - 在同一查询中获取个人和总工作时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9947719/

相关文章:

MySQL INSERT INTO 语句

mysql - 在 Rails 模型中使用范围收集 "private"帖子

MySQL从两个表中选择语句

c++ - SQLite 动态表中的分页

html - Mysql:从帖子中批量删除图像,同时仍使用缩略图

php - SQL 语句中文字前的冒号是什么意思?

mysql - 如何转置Mysql中的表

php - 修复 WordPress 数据库中保存的大量 html block 中的链接 href 和 img src 不匹配的问题

php - 服务器离线时的 AJAX 请求然后在服务器恢复时恢复

mysql - 安装 MySQL 驱动程序后,Perl SQLite 驱动程序停止工作