1

如何sum(hours)使用一个 sql 命令获得显示此表中多个名称的输出?

例如,理想的输出将是 (20, 70),基于下表,该表将是该日期每个人的总小时数。

当前的 SQL。

SELECT sum(hours) from project_time where date = '04/07/2013' AND name = 'Rhys Parker'

上面的 sql 给出了我想要的结果,但它只适用于一个用户,我想获得该日期所有用户的输出。

数据库表:

数据库表

数据库结构:SQLITE

CREATE TABLE PROJECT_TIME ( name VARCHAR(16), date DATE, project VARCHAR(16), hours VARCHAR(16), PRIMARY KEY (name, project, date))
4

4 回答 4

3

您将添加一个GROUP BY. 将聚合函数与 一起使用GROUP BY将为您在表中具有的每个 DISTINCT 名称提供结果:

SELECT name, sum(hours) TotalHours
from project_time 
where date = '04/07/2013'
GROUP BY name

请参阅带有演示的 SQL Fiddle

于 2013-04-04T03:13:04.417 回答
2

听起来你应该使用GROUP BY

SELECT name, sum(hours) 
FROM project_time 
WHERE date = '04/07/2013' 
GROUP BY name

这将为您提供每个名称的小时总和:

Rhys Parker 70
Bob Smith   20

SQL 小提琴演示

于 2013-04-04T03:13:00.350 回答
2

你想要一个组:

SELECT name, sum(hours)
from project_time
where date = '04/07/2013'
group by name
于 2013-04-04T03:13:20.873 回答
1

只是为了提供一个替代方案,如果你想要它在所有日期,做

  SELECT name,date, sum(hours) as TotalHours
   from project_time 
    GROUP BY name,date;
于 2013-04-04T03:14:57.923 回答